2015-05-03 5 views
-1

В первом абзаце книги Джоша Блоха Эффективное Java на двадцать девятом Item говорится, чтоНаборы и карты не параметризованы?

это контейнер, который спараметрирован

ли не автор Отбросить Множества и Карты, как параметризованные типы по выше декларации?

+2

Нет, он не отбрасывает. Перечитайте это. –

+4

Все люди смертные. Сократ - человек. Поэтому Сократ смертен. // Контейнеры параметризуются. Наборы и карты - это контейнеры. Поэтому параметры и карты параметризуются? –

+0

Спасибо @AndreyTyukin Sir – user961690

ответ

0

Целью пункта 29 (как я только что обсуждал в another answer) является демонстрация других видов использования дженериков и параметризованных типов в дополнение к коллекциям. Вся предыдущая глава по существу обсуждает параметризованные типы коллекций, поэтому Блох явно не отбрасывает Map и Set и другие параметризованные типы - он различает их от другого типа шаблона, который он называет «гетерогенным контейнером».

Сравните интерфейс, как:

interface Collection<E> { 
    void put(E element); 
    E get(int index); 
} 

что-то вроде:

interface HeterogeneousContainer { 
    <T> void put(Class<T> type, T instance); 
    <T> T get(Class<T> type); 
} 

Обратите внимание, что Collection сам имеет параметр типа, в то время как HeterogeneousContainer нет. Это различие, которое Блох пытается использовать в этом элементе - вы можете использовать параметры типа более мощными способами, чем просто создавать коллекции с типом безопасности.

 Смежные вопросы

  • Нет связанных вопросов^_^