Объяснение принципа get-put

Я прочитал книгу О’Рейли, в которой я узнал этот принцип получения .

  • Используйте расширенный шаблон, когда вы получаете только значения из структуры.
  • Используйте super символ, когда вы только ставите значения в структуру.
  • И не используйте подстановочный знак, когда вы оба хотите получить и поместить из / в структуру.

Исключения :

Может ли кто-нибудь помочь мне изучить это правило на глубине? Если возможно, укажите их иерархически.

Рассмотрим кучу бананов. Это Collection Collection тем, что это коллекция определенного вида фруктов, но вы не знаете (из этой декларации), какой плод это коллекция. Вы можете получить предмет от него и знать, что это определенно будет плодом, но вы не можете добавить к нему – вы можете попробовать добавить яблоко в кучу бананов, что определенно будет ошибкой. Вы можете добавить к нему null , так как это будет допустимым значением для любого вида фруктов.

Теперь рассмотрим плод. Это Collection Collection , потому что это коллекция какого-то типа «больше, чем» Banana (например, Collection или Collection ). Вы можете определенно добавить банан к этому, но если вы возьмете предмет из чаши, вы не знаете, что вы получите – это может быть не банан. Все, что вы знаете наверняка, это то, что это будет действительная (возможно, null ) ссылка на Object .

(В общем, для вопросов с генераторами Java, часто задаваемые вопросы Java Generics – отличный ресурс, который содержит ответы на почти любые связанные с генериками данные, которые вы, вероятно, будете бросать на него).

  • Могу ли я навсегда запретить обновлениям безопасности Java от установки панели инструментов Yahoo?
  • Как создать проект из существующего источника в Eclipse, а затем найти его?
  • Переменная префикса Springpathpath
  • Обновление ImageIcon в JTree без перекраски дерева?
  • Явный vs неявный вызов toString
  • Как изменить стиль стрелки в JComboBox
  • Максимальный размер HashSet, Vector, LinkedList
  • Возвращает только строковое сообщение от Spring MVC 3 Controller
  • В Java, как я могу анализировать XML как строку вместо файла?
  • Программное обнаружение тупика в java
  • Как вызвать метод с отдельным streamом в Java?
  • Давайте будем гением компьютера.