1
어쩌면 이전에 답변을 받았을 수도 있지만 여기에서 찾지 못했습니다. 다음 코드 줄을 고려일반적인 유형의 메소드 가져 오기
public static <T> T getAs() { ... }
반사에 의해, 객체 Class<T>
를 얻을 수있다? 대한 명확한
class Foo<T> {
public T get() { ...}
}
이것은 다음과 같이 사용 예
class Foo {
private List<A> items;
public <T extends A> T first() {
Class<T> clazz = //Magic??
foreach (A a : items) {
if (clazz.isInstance(a)) return (T)a;
}
return null;
}
}
를 들어, C#에서 수행 할 수 있습니다에서 같은 클래스의 일반적인 유형을 찾고 있지 :
SubClass s = fooInst.<SubClass>first();
물가로 갔습니까? http://stackoverflow.com/questions/3403909/get-generic-type-of-class-at-runtime? – reto
https://docs.oracle.com/javase/tutorial/reflect/member/methodType.html –
나는 이것이 중복이라고 생각하지 않습니다. 나는 그녀가 정말로 클래스을 원하고 있다고 생각합니다. 현재 클래스 –