3 回答
TA贡献1820条经验 获得超10个赞
更少的无助和重复的代码,更多的代码是可读和可维护的。
List<String> nameList = new ArrayList<String>();
或者
List<String> nameList = new ArrayList<>();
好吧,差别不大。
但是假设现在您必须更改 generic: Stringby Integer,使用第一种方式您必须进行两次修改:
List<Integer> nameList = new ArrayList<Integer>();
^------ -------------^
真的不好看。
钻石只需要一个:
List<Integer> nameList = new ArrayList<>();
^---
但再举一个例子:
Map<String, List<Integer>> map = new HashMap<String, List<Integer>>();
或者
Map<String, List<Integer>> map = new HashMap<>();
它使事情更清楚。
在应用程序中,您通常会声明和实例化大量集合和泛型类。重构它真的很便宜。所以就去做吧。
TA贡献1155条经验 获得超0个赞
这条规则背后的全部要点是:在 java 7 中,编译器能够从类型本身推断构造函数的类型。
为什么要在构造函数中省略泛型类型?
2件事:
两次指定类型更冗长
如果您决定更改集合,则不需要两次更改泛型的类型。
保持原样有害吗?不是真的。但在您的团队中拥有一致的代码风格总是更好。因此,如果您的团队使用声纳进行代码样式检查,为了一致性起见,您应该遵守它。
添加回答
举报