2015-07-31 2 views
1

Учитывая бетон класс:Использование неизвестного общего типа с классом List

public class Book { 
    // ... 
} 

И в java.util.List инициализации:

List<?> myList = new ArrayList<Book>(); 

Следующая строка кода делает не компиляции:

myList.add(new Book()); 

Итак, какова цель использования неизвестного общего типа в List, если вы не можете ничего добавить в список?

Возможно, вы можете сделать .get() и другие операции чтения на объекте, но почему бы вам это сделать до его инициализации?

+1

Поскольку вопрос теперь закрыт как дубликат, я добавил ответ на [другой вопрос] (http://stackoverflow.com/questions/7671072/what-is-the-use-and-point-of- unbound-wildcards-generics-in-java) –

+0

Я не уверен, что это настоящий дубликат. Но многие ответы на другой вопрос актуальны для вас (мой должен быть :-)). Не стесняйтесь редактировать свой вопрос и пинговать мне в комментарии, если вам нужны какие-то уточнения. –

+1

Вы никогда не будете писать 'List myList = new ArrayList ();' в реальном коде. 'List ' только имеет смысл как параметр возвращаемого типа метода, подобный примерам, приведенным в [моем ответе] (http://stackoverflow.com/a/31749894/3545273). –

ответ

0

Вы не использовать неизвестный общий тип в List при инициализации. Вы делаете используйте его, когда: см. Дублируемую ссылку.

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