이것은 바보 같은 질문 일 수 있습니다. 그러나 방금 how to create a Type variable for a generic type을 묻는 질문을 보았습니다. 합의는 여러분이 그 타입을 반환하는 더미 메소드를 가져야하고, 리플렉션을 사용하여 그것을 얻는 것 같았다. (이 경우 그는 Map<String, String>
을 원했다.) 이런 식으로 뭔가 :익명 클래스를 사용하여 매개 변수화 된 형식 개체 만들기
public Map<String, String> dummy() { throw new Error(); }
Type mapStringString = Class.forName("ThisClass").getMethod("dummy").getGenericReturnType();
내 질문입니다, 많이, 당신은 단지 같은 것을 할 수 없음을 사용하는 반사를 가지고 있지 :
Type mapStringString = new ParameterizedType() {
public Type getRawType() {
return Map.class;
}
public Type getOwnerType() {
return null;
}
public Type[] getActualTypeArguments() {
return new Type[] { String.class, String.class };
}
};
겠습니까이 일을? 그렇지 않다면 왜 안 되겠습니까? 그리고 그것은 분명히 가능하지 않은 Integer<String>
같은 몇 가지 유형을 반환 할 수있는 외에 (않는 경우 위험의 일부/문제가 무엇인가.
나는 제안 된 솔루션이 허용하는 것을 시도하고 있습니다 : 원시로부터 매개 변수화 된 유형 가져 오기 컴파일시에 제공되는 Type 파라미터의 타입과리스트 이 일을하는 또 다른 방법을 찾았습니까? – user48956