public static java.util.List getFoo(java.lang.String)
上述方法返回List<String>
的類型,但javap
命令返回上述(它不顯示該List
是String
類型)。有沒有辦法顯示真實的類型?javap的不顯示集合
public static java.util.List getFoo(java.lang.String)
上述方法返回List<String>
的類型,但javap
命令返回上述(它不顯示該List
是String
類型)。有沒有辦法顯示真實的類型?javap的不顯示集合
該類型是一個謊言:)好了,這只是編譯時間信息。當從集合中取出時,列表的條目被轉換爲字符串,字節碼格式的列表本身就像任何標準的普通舊列表一樣。
http://download.oracle.com/javase/tutorial/java/generics/erasure.html
參數化對象的運行時類型總是被擦除,所以沒有。請參閱Learning the Java Language Tutorial的Generics Trail中的Type Erasure。
您將需要改變函數的簽名
public static java.util.List<String> getFoo(java.lang.String).
javap的忽視在這種情況下,參數化類型的字符串。
我做了一個類似的例子測試。使用Linux命令hexdump,顯示參數化類型。
該片段是javap的輸出,而不是源代碼。 – 2011-05-06 09:33:46
對不起,我錯過了。同意你和Mikko。 – Prabhjot 2011-05-06 09:34:19