【发布时间】:2011-08-14 22:21:58
【问题描述】:
在 Java 7 中,他们终于实现了diamond operator,它允许您在使用泛型时省略初始化的重复。
例如List<String> list = new ArrayList<>();
这看起来很方便,因为它避免了编写“无用”的代码。它似乎非常有用,我很好奇为什么在引入泛型时没有实现它。
【问题讨论】:
-
他们没有做很多事情。时间和资源限制。
-
我很好奇为什么 Java 会采取如此无用的路径,而不是像 VB .NET 和 C# 允许的那样完全省略重复(var x = new ArrayList
() 或 Dim x As /= 新的 ArrayList(字符串) -
我认为这里的任何人都无法明确回答这个问题,除非他们是实际设计 Java 编程语言的委员会的成员。这是一个有趣的问题,但我认为如果没有得到极少数人的反馈,就无法给出一个好的答案。
-
因为他们没有想到一切?因为人不完美?因为事后看来是20-20?我认为最初省略它并不是故意的。
-
在我的 C++ 眼中,这看起来很危险 ;-) 但是这真的被称为 Java 中的“操作符”吗?它的作用是什么?我知道 Perl 有一个菱形运算符,但它实际上做了一些事情。 (我今天也刚刚了解到 Java 没有标准化......)
标签: java generics diamond-operator