Heim >Java >javaLernprogramm >So verwenden Sie Reflection, um allgemeine Informationen in Java zu erhalten

So verwenden Sie Reflection, um allgemeine Informationen in Java zu erhalten

王林
王林nach vorne
2019-11-29 15:40:002647Durchsuche

So verwenden Sie Reflection, um allgemeine Informationen in Java zu erhalten

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, O wird zurückgegeben, wenn es von einer Variablen vom Typ O aufgerufen wird, z. B. Map.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:

So verwenden Sie Reflection, um allgemeine Informationen in Java zu erhalten

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen