>Java >java지도 시간 >리플렉션을 사용하여 Java 목록의 일반 유형을 검색하려면 어떻게 해야 합니까?

리플렉션을 사용하여 Java 목록의 일반 유형을 검색하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-21 15:41:18897검색

How Can I Retrieve the Generic Type of a Java List Using Reflection?

Java 목록의 일반 유형 검색

Java에서 일반 유형으로 작업할 때 일반 유형과 연관된 특정 클래스를 검색하는 것이 유용할 수 있습니다. 다음 예를 고려하십시오.

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

이 시나리오에서는 이러한 목록과 연관된 실제 클래스 유형, 즉 String 및 Integer에 액세스할 수 있습니다. 다행스럽게도 Java에서는 리플렉션을 사용하여 이 정보를 검색하는 방법을 제공합니다.

리플렉션 사용

getDeclaredField 메서드를 활용하면 일반 목록을 보유하는 클래스의 필드에 액세스할 수 있습니다. 여기에서 필드의 ParameterizedType을 얻고 실제 클래스 정보를 추출할 수 있습니다. 예는 다음과 같습니다.

Field stringListField = testClass.getDeclaredField("stringList");
ParameterizedType stringListType = (ParameterizedType) stringListField.getGenericType();
Class<?> stringListClass = (Class<?>) stringListType.getActualTypeArguments()[0];

이 코드는 Class stringListClass 변수에 객체를 추가하여 목록의 일반 유형을 결정할 수 있습니다. 동일한 접근 방식을 사용하여 정수 목록 필드의 일반 유형을 검색할 수 있습니다.

대체 고려 사항

목록이 메소드 범위 내에서 정의된 경우 일반 유형을 검색할 필요가 없습니다. 명시적으로 유형을 지정합니다. 이는 메소드의 컨텍스트 내에서 유형 정보를 쉽게 사용할 수 있기 때문입니다.

위 내용은 리플렉션을 사용하여 Java 목록의 일반 유형을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.