Erläuterung
1. In der Kompilierungsphase sind generische Werte vorhanden.
2. Diese Funktion wird als Typlöschung bezeichnet. Wenn Generika entfernt werden, stehen ihm zwei Konvertierungsmethoden zur Verfügung. Die erste besteht darin, dass das Generikum in den Objekttyp konvertiert wird, wenn die Typobergrenze nicht festgelegt ist. Die zweite Möglichkeit besteht darin, dass das Generikum in seine Typobergrenze konvertiert wird.
Instanzen
//未指定上限 public class Test1<T> { T t; public T getValue() { return t; } public void setVale(T t) { this.t = t; } } //指定上限 public class Test2<T extends String> { T t; public T getT() { return t; } public void setT(T t) { this.t = t; } } //通过反射调用获取他们的属性类型 @Test public void testType1() { Test1<String> test1 = new Test1<>(); test1.setVale("11111"); Class<? extends Test1> aClass = test1.getClass(); for (Field field : aClass.getDeclaredFields()) { System.out.println("Test1属性:" + field.getName() + "的类型为:" + field.getType().getName()); } Test2 test2 = new Test2(); test2.setT("2222"); Class<? extends Test2> aClass2 = test2.getClass(); for (Field field : aClass2.getDeclaredFields()) { System.out.println("test2属性:" + field.getName() + "的类型为:" + field.getType().getName()); } }
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie Typlöschung in Java-Generika. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!