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