Java 1.7中的Java Reflection getGenericReturnType()错误



我有一个示例类如下。

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的这种行为发生了变化(但只是在一个地方),但我怀疑,如果您以编程方式查看这两种情况下的类型,您会发现它包含完全相同的数据。只是不要依赖字符串表示。

相关内容

  • 没有找到相关文章

最新更新