我有一个示例类如下。
class Sample {
public List<BigInteger[]>[] method() { return null;}
}
当我尝试做以下事情时。
Method m = Sample.class.getMethod("method", null);
Type type = m.getGenericReturnType();
我的类型是java.util.List<[Ljava.math.BigInteger;>[]
,但当我尝试使用java 1.6并获得java.util.List<java.math.BigInteger[]>[]
类型时
这背后的原因是什么?
java.util.List<[Ljava.math.BigInteger;>[] (in java 1.7)
java.util.List<java.math.BigInteger[]>[] (in java 1.6)
您只是在类型参数的字符串表示中看到了差异。[LFoo
是显示Foo
阵列的正常方式(诚然有些模糊)。目前尚不清楚为什么Java 7的这种行为发生了变化(但只是在一个地方),但我怀疑,如果您以编程方式查看这两种情况下的类型,您会发现它包含完全相同的数据。只是不要依赖字符串表示。