【发布时间】:2010-05-28 07:47:50
【问题描述】:
Java 不允许我们做的原因是什么
private T[] elements = new T[initialCapacity];
我可以理解 .NET 不允许我们这样做,因为在 .NET 中,值类型在运行时可以具有不同的大小,但在 Java 中,所有类型的 T 都将是对象引用,因此具有大小相同(如果我错了,请纠正我)。
是什么原因?
【问题讨论】:
-
你在说什么?您绝对可以在 .NET 中执行此操作。 -- 我在这里试图弄清楚为什么我不能在 Java 中做到这一点。
-
@BrainSlugs83 - 请添加一些代码示例或教程的链接来显示这一点。
-
@MasterJoe2 OP 问题中的上述代码就是我所指的。它在 C# 中运行良好,但在 Java 中却不行。 - 问题表明它在两者中都不起作用,这是不正确的。 -- 不确定是否有进一步讨论的价值。
-
[因为这是一个尚未修复的错误。 ](i.stack.imgur.com/hlOJI.jpg)
标签: java generics type-erasure