通用型我有一個看起來像如何提取從ARG
public void (Foo<T> foo)
在這種方法中,我需要調用了
Class<T> clazz
作爲參數的方法的方法簽名。我如何從foo獲得類型爲Class<T>
的參考?謝謝
通用型我有一個看起來像如何提取從ARG
public void (Foo<T> foo)
在這種方法中,我需要調用了
Class<T> clazz
作爲參數的方法的方法簽名。我如何從foo獲得類型爲Class<T>
的參考?謝謝
由於類型擦除,你不能直接獲取類型參數。這些信息在運行時根本不存在。 API需要參考類型參數的類需要採取類的對象實例...
公共無效ABC(美孚< T> FOO,<類T> clazz所)
你確定你的方法簽名是正確的?
我認爲,如果沒有T類你不能讓的說法看起來像
public void method(Class<T> obj){
}
類型參數必須存在,所以你已經知道的傳入的類型。
當你把它變成這樣:
public <T> void method(T u){
System.out.println("U: " + u.getClass().getName());
}
你應該能夠得到的類名或剛下課參考,不?
文檔:
http://download.oracle.com/javase/tutorial/java/generics/genmethods.html
是的,我無意中省略
讓我知道是否有幫助:) GL;) – 2011-01-05 13:46:50
Java 7的是應該將具體化泛型類型與您將能夠解決這個問題 – LINEMAN78 2011-01-05 01:56:32