Type 인스턴스 (Class 또는 ParameterizedType 일 수 있음)가 주어지면 클래스에서 구현 된 특정 유형의 인터페이스를 가져와야합니다. generics가 없다면 이것은 쉽습니다. Class 인스턴스에서 getInterfaces()를 호출하면 완료됩니다. 그러나 구현 된 인터페이스에 원래 클래스의 유형 매개 변수 자체에 종속되거나 종속되지 않는 자체 유형 매개 변수가있는 경우에도이 기능이 필요합니다. 클래스 유형 매개 변수가 적용된 구현 인터페이스의 유형 인스턴스 가져 오기
class Foo implements Iterable<Integer> {}
에게 주어진뿐만 아니라 클래스에게 주어진 Iterable을 < 문자열 >을 반환해야 할 때
예로, 함수의 Iterable < 정수 >를 반환해야
class Bar<T> implements Iterable<T> {}
과 바 <을 나타내는 ParmeterizedType 문자열 >
내장 된 리플렉션, 타사 도구 등으로 쉽게이 작업을 수행 할 수 있습니까?
명확히하려면 리터럴 (Foo.class 등)을 통해 검색된 유형 인스턴스뿐만 아니라 적용된 유형 매개 변수를 포함 할 수있는 리플렉션을 통해 반환 된 유형 (예 : 메소드에서 리플렉션을 통해 반환 된 리턴 유형)도 작동해야합니다.
static Bar<String> magic() { ... }
이것은 원시 Bar 클래스 및 String 유형 인수를 참조하는 ParameterizedType입니다.
나는 그것이 내가 필요한 바로 그 것이라고 생각한다. 만약 내가 할 수있는 최대 10 표를 줄 것입니다 :) – SoftMemes