"로 선언된 유형은 "List" 및 "Map"과 같은 매개변수화된 유형입니다."/> "로 선언된 유형은 "List" 및 "Map"과 같은 매개변수화된 유형입니다.">

 >  기사  >  Java  >  리플렉션을 사용하여 Java에서 일반 정보를 얻는 방법

리플렉션을 사용하여 Java에서 일반 정보를 얻는 방법

王林
王林앞으로
2019-11-29 15:40:002552검색

리플렉션을 사용하여 Java에서 일반 정보를 얻는 방법

ParameterizedType은 매개변수화된 유형을 의미합니다. ParameterizedType就是参数化类型的意思。

解释:

声明类型中带有“”的都是参数化类型,比如List<integer></integer>Map<string></string>

getActualTypeArguments()返回Type[],即“”里的参数,比如Map<string></string>

getRawType()返回Tpye,得到“”前面的类型,比如List<string></string>

getOwnerType()返回Type,O.I类型变量调用时会返回O,比如Map.Entry<long></long>

설명:

선언된 유형에 ""가 있는 모든 것은 매개변수화된 유형입니다(예: List<integer></integer>, Map<string></string>) .

getActualTypeArguments()Map<string></string>과 같은 ""의 매개변수인 Type[]을 반환합니다.


getRawType()은 Tpye를 반환하고 List<string></string>과 같이 "" 앞의 유형을 가져옵니다.

getOwnerType()은 Type을 반환하며, O.I 유형 변수(예: Map.Entry<long>)에 의해 호출되면 O<t>가 반환됩니다. 코드>. <br></t></long>

무료 교육 영상 공유:

java 강좌리플렉션을 사용하여 Java에서 일반 정보를 얻는 방법

예제 코드:

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();
        }
    }
}

실행 결과: 🎜🎜🎜🎜🎜🎜java 관련 기사 튜토리얼 추천: 🎜java 입문 튜토리얼🎜🎜

위 내용은 리플렉션을 사용하여 Java에서 일반 정보를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제