Java Reflection을 통해 일반 매개변수 유형 검색
Java에서 개발자는 런타임 시 특정 유형의 일반 매개변수를 가져와야 할 수도 있습니다. . 이 질문은 Java 리플렉션을 사용하여 이 일반적인 작업을 수행하는 방법을 탐구합니다.
질문:
Java 리플렉션을 사용하여 특정 유형의 일반 매개변수를 검색할 수 있습니까?
시나리오:
다음 코드를 고려하세요. snippet:
public final class Voodoo { public static void chill(List<?> aListWithTypeSpiderMan) { // Here I'd like to get the Class-Object 'SpiderMan' Class typeOfTheList = ???; } public static void main(String... args) { chill(new ArrayList<SpiderMan>()); } }
답변:
예, 리플렉션을 사용하여 일반 매개변수 유형을 얻는 것이 가능합니다. 한 가지 접근 방식은 다음 코드를 활용하는 것입니다.
Class<T> persistentClass = (Class<T>) ((ParameterizedType)getClass().getGenericSuperclass()) .getActualTypeArguments()[0];
이 코드에서 persistClass는 일반 유형(이 경우 SpiderMan)의 실제 유형 인수를 나타냅니다. 그러나 기본 리플렉션 메커니즘은 복잡할 수 있으므로 성공적인 구현을 위해서는 Java 제네릭 및 리플렉션에 대한 철저한 이해가 권장됩니다.
위 내용은 Java Reflection이 런타임에 일반 매개변수 유형을 검색할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!