javap不显示Collection的类型

时间:2011-05-06 09:26:22

标签: java

public static java.util.List getFoo(java.lang.String)

上述方法返回List<String>,但javap命令返回上述内容(它不显示List的类型为String)。有没有办法显示真实的类型?

4 个答案:

答案 0 :(得分:4)

类型是谎言:)严重的是,这只是编译时间信息。当从集合中获取时,列表的条目被转换为字符串,字节码格式的列表本身就像任何标准的普通旧列表一样。

http://download.oracle.com/javase/tutorial/java/generics/erasure.html

答案 1 :(得分:1)

参数化对象的运行时类型总是被删除,所以没有。请参阅Type ErasureGenerics Trail中的Learning the Java Language Tutorial

答案 2 :(得分:0)

您需要更改功能的签名

public static java.util.List<String> getFoo(java.lang.String).

答案 3 :(得分:0)

在这种情况下,javap对参数化类型String是盲目的。

我用一个类似的例子进行了测试。使用Linux命令 hexdump ,将显示参数化类型。