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

王林
Freigeben: 2019-11-29 15:40:00
nach vorne
2600 Leute haben es durchsucht

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();
        }
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage