У меня есть код:
Set<? extends Notifiable> notifiables;
Уведомляемый - это интерфейс. Я не понимаю разницу между приведенным выше кодом и:
Set<Notifiable> notifiables;
Если Notifiable был классом, тогда я бы понял разницу, первый код разрешил Notifyiable и любой подкласс Notifiable, тогда как второй код разрешил Notifyable (а не какие-либо подклассы)
Как вы не можете иметь экземпляр интерфейса, что я могу добавить /etc в набор? Мне кажется, что есть только два варианта: либо что-либо, что реализует Notifyiable (в этом случае, как это отличается от первого кода), либо только "экземпляры Notifyable", которые не могут существовать, и поэтому ничего (что бессмысленно и должен вызывать ошибку времени компиляции).