1
也许这已经回答过,但我没有在这里找到它。考虑下面的代码行:获取方法的通用类型
public static <T> T getAs() { ... }
,能够获得对象Class<T>
,通过反射?
为了澄清,我不是找一般类型的一类,就像在
class Foo<T> {
public T get() { ...}
}
这可以用C#来完成它实在是太好用,例如
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;
}
}
像这样来使用:
SubClass s = fooInst.<SubClass>first();
你走低谷http://stackoverflow.com/questions/3403909/get-generic-type-of-class-at-runtime? – reto 2014-11-24 12:34:45
看看这一个,以及:https://docs.oracle.com/javase/tutorial/reflect/member/methodType.html – 2014-11-24 12:35:30
我不认为这是重复的,我认为她真的想要类而不是当前类 –
2014-11-24 12:35:58