> Java > java지도 시간 > 리플렉션을 사용하여 Java `목록`의 일반 유형을 검색하는 방법은 무엇입니까?

리플렉션을 사용하여 Java `목록`의 일반 유형을 검색하는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-23 13:08:18
원래의
715명이 탐색했습니다.

How to Retrieve the Generic Type of a Java `List` Using Reflection?

Java.util.List의 일반 유형 검색

Java에서 일반 유형 매개변수를 사용하면 클래스 또는 인터페이스가 작동할 수 있습니다. 다양한 유형의 데이터. 예를 들어 List는 모든 유형의 요소를 저장할 수 있습니다. 목록의 일반 유형에 액세스하려면 Java Reflection을 활용할 수 있습니다.

Reflection을 사용하여 일반 유형 얻기

Field 클래스의 getGenericType() 메서드는 다음을 반환합니다. 필드의 일반 유형입니다. 목록 필드의 경우 이는 ParameterizedType입니다. 실제 일반 유형을 추출하려면 ParameterizedType을 목록 유형으로 캐스팅하세요.

다음 코드는 리플렉션을 사용하여 목록의 일반 유형을 검색하는 방법을 보여줍니다.

import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.util.ArrayList;
import java.util.List;

public class GetGenericType {

    List<String> stringList = new ArrayList<>();
    List<Integer> integerList = new ArrayList<>();

    public static void main(String[] args) throws Exception {
        Class<GetGenericType> clazz = GetGenericType.class;

        Field stringListField = clazz.getDeclaredField("stringList");
        ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
        Class<?> stringListClass = stringListType.getActualTypeArguments()[0];
        System.out.println(stringListClass); // class java.lang.String

        Field integerListField = clazz.getDeclaredField("integerList");
        ParameterizedType integerListType = (ParameterizedType) integerListField.getGenericType();
        Class<?> integerListClass = integerListType.getActualTypeArguments()[0];
        System.out.println(integerListClass); // class java.lang.Integer
    }
}
로그인 후 복사

여기서 예를 들어, getGenericType() 메소드는 ParameterizedType의 인스턴스인 stringList 및 정수 목록 필드의 일반 유형을 검색하는 데 사용됩니다. 이러한 유형의 getActualTypeArguments() 메서드에 액세스하면 각각 String 및 Integer로 인쇄되는 실제 일반 유형이 반환됩니다.

리플렉션은 비용이 많이 들 수 있으므로 필요한 경우에만 사용해야 한다는 점에 유의하는 것이 중요합니다. 코드 컨텍스트에서 stringList 및 정수 목록의 일반 유형이 이미 알려져 있거나 현재 범위에서 추론할 수 있는 경우 리플렉션을 사용할 필요가 없습니다. 그러나 리플렉션은 동적으로 생성되거나 컴파일 시 알 수 없는 일반 유형으로 작업할 때 유용할 수 있습니다.

위 내용은 리플렉션을 사용하여 Java `목록`의 일반 유형을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿