ParameterizedType
bedeutet parametrisierten Typ.
Erklärung:
Dinge mit „“ im deklarierten Typ sind parametrisierte Typen, wie zum Beispiel List<integer></integer>
, Map<string></string>
.
getActualTypeArguments()
Gibt Typ[] zurück, also die Parameter in „“, wie z. B. Map<string></string>
.
getRawType()
Kehren Sie zu Tpye zurück und holen Sie sich den Typ vor „“, z. B. List<string></string>
.
getOwnerType()
gibt Typ zurück, OMap.Entry<long></long>
.
Kostenloses Teilen von Lehrvideos: Java-Kurs
Beispielcode:
import org.junit.Test; import java.lang.reflect.Field; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.math.BigDecimal; import java.util.Map; public class ReflectDemo { private static Map<String, BigDecimal>map; @Test public void test(){ try { Class<?> aClass = Class.forName("com.test.annotation.param.ReflectDemo"); //获取map属性对象 Field field = aClass.getDeclaredField("map"); //获取map属性的类型 Type type = field.getGenericType();//返回属性声明的Type类型 if (type instanceof ParameterizedType) { //强转为ParameterizedType对象 ParameterizedType parameterizedType = (ParameterizedType) type; //获取原始类型 Type rawType = parameterizedType.getRawType(); System.out.println("map的原始类型为:"+rawType); //获取map的类型的所有泛型信息 Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); for(int i=0;i<actualTypeArguments.length;i++){ System.out.println("Map类型的第"+(i+1)+"个泛型为:"+actualTypeArguments[i]); } } } catch (Exception e) { e.printStackTrace(); } } }
Laufergebnisse:
Empfohlene Java-bezogene Artikel und Tutorials: Java-Einführungs-Tutorial
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Reflection, um allgemeine Informationen in Java zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!