Не могли бы вы помочь мне понять общую концепцию здесь.Общая концепция стирания
// Can't create an instance of T.
class Gen<T> {
T ob;
Gen() {
ob = new T(); // Illegal!!!
}
public static void main() {
Gen<Integer> genobj = new Gen<Integer>(); //Error
}
}
Когда код Java компилируется, все общие типа информация удаляется (стирается). Это означает замену параметров типа их связанным типом , который является объектом, если не указано явное ограничение, а затем применяя соответствующие приведения (как определено аргументами типа) для поддержания совместимости типов с типами , указанными аргументами типа. Компилятор также обеспечивает совместимость этого типа.
Мой вопрос: -Почему java complier здесь ошибается? Bevause после уступки.
Благодаря
После компиляции тип 'T' стирается, поэтому программа не будет знать, какой тип вы пытаетесь создать. – khelwood
Пожалуйста, исправьте меня, если я ошибаюсь. «T» заменен на Java.lang.Object – alakhya
Gen genobj = new Gen () после усложнения это будет Gen genobj = new Gen () –
alakhya