Könnten Sie mir bitte helfen, das generische Konzept hier zu verstehen.Generisches Erasure-Konzept
// 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
}
}
Wenn Ihr Java-Code kompiliert wird, werden alle generischen Typ Informationen entfernt (gelöscht). Dies bedeutet, dass Typparameter durch ihren gebundenen Typ ersetzt werden, der Object ist, wenn keine explizite Bindung angegeben ist, und dann die entsprechenden Umwandlungen (wie von den Typargumenten bestimmt), um die Typkompatibilität mit den durch die Typargumente angegebenen Typen beizubehalten. Der Compiler erzwingt auch diese Typkompatibilität.
Meine Frage: -Warum Java Compier ist Fehler hier werfen? Bevause nach complitaion.
Dank
Nach der Kompilierung wird der Typ "T" gelöscht, so dass das Programm nicht weiß, welchen Typ Sie versuchen zu instanziieren. – khelwood
Bitte korrigieren Sie mich, wenn ich falsch liege.'T 'wird ersetzt mit Java.lang.Object – alakhya
Gen genobj = neue Gen () nach der Kompilierung wäre es Gen genobj = neues Gen () –
alakhya