Сырой тип

Сырой тип

Дженерик без информации о его типе называется сырым типом. Например, для MyClass<T> сырым типом будет MyClass.

Ссылочная переменная сырого типа не имеет информации о типе дженерика, на который она указывает. Раз информации нет, значит привязанный дженерик будет работать с типом Object. А следовательно, в него можно передать что угодно, а получить из него можно только Object, либо выполнить явное приведение типа.


List list = new ArrayList<String>();
list.add("some string");
list.add(new File("temp.txt")); // скомпилируется успешно

// String s = list.get(0); // ошибка компиляции. Object невозможно преобразовать в String.
String s = (String)list.get(0);
Дженерики