【发布时间】:2019-01-13 07:42:24
【问题描述】:
我遇到了一个建议使用的answer
var list = new ArrayList();
我很惊讶在这里发现了一个原始类型,我只是想知道:var 是否自动使用<>“?
(同时答案改用<String>,不过我还是好奇不过这里的“原理”)
看到this之类的其他问题,都用菱形运算符:
var list = new ArrayList<>();
现在我只是想知道:var 是否改变了我们应该(不)使用原始类型的方式?还是说忽略<> 的建议只是不好的做法?
【问题讨论】:
-
仅供参考,the answer 您在第一句话中链接的内容已被作者编辑添加为
<String>。 -
@SudhirOjha 你也有同样的问题:在那个问题中,any 讨论了关于将原始类型与 var 结合使用的讨论?
-
好问题。我想this article by Brian 和another one by Stuart 可能是更好地了解风格和风险的好书。 Holger 是pointing to the raw types as well,我猜,他看到了这样一个问题。
-
这很简单。对于
var声明的本地变量,我们将 RHS 的类型计算为独立表达式(然后执行称为 upward projection 的过程来投影捕获变量。)如果 RHS 是原始的,则推断的类型是原始类型。没有魔法。 -
@SudhirOjha 我不认为这是我的问题的重复,因为我的问题根本不涉及原始类型。
标签: java generics var local-variables java-10