> Java > java지도 시간 > 리플렉션을 사용하여 java.util.List의 일반 유형을 얻는 방법은 무엇입니까?

리플렉션을 사용하여 java.util.List의 일반 유형을 얻는 방법은 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-22 21:26:17
원래의
1023명이 탐색했습니다.

How to Get the Generic Type of a java.util.List using Reflection?

java.util.List의 일반 유형을 가져오는 방법

주어진 java.util.List의 일반 유형을 검색하려면 , 상기 목록 인스턴스가 클래스 내의 필드인 경우 반사 기술을 사용할 수 있습니다. 수행 방법은 다음과 같습니다.

// Declare fields of type List<String> and List<Integer>
List<String> stringList = new ArrayList<>();
List<Integer> integerList = new ArrayList<>();

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

    // Obtain the Field object of the stringList field
    Field stringListField = testClass.getDeclaredField("stringList");
    // Determine the generic type of stringList using ParameterizedType
    ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
    // Retrieve the actual type argument (i.e., generic type) of stringListType
    Class<?> stringListClass = stringListType.getActualTypeArguments()[0];
    System.out.println(stringListClass); // class java.lang.String

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

이 접근 방식은 매개변수 유형 및 메서드 반환 유형에도 적용할 수 있습니다. 그러나 List 인스턴스가 필요한 클래스 또는 메서드의 범위 내에 있는 경우 일반 유형이 명시적으로 선언되므로 리플렉션을 사용할 필요가 없다는 점에 유의하는 것이 중요합니다.

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

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