") should be used"-6ren"> ") should be used"-所以我的文件中有以下代码行 List nameList = new ArrayList(); 现在,每次我运行 Sonar 扫描时,它都会在上面的行中显示一个错误,提示我应该改用菱形运算符。现在我了解-6ren">
gpt4 book ai didi

java - Sonar 提示 "The diamond operator ("< >") should be used"

转载 作者:搜寻专家 更新时间:2023-11-01 01:05:52 25 4
gpt4 key购买 nike

所以我的文件中有以下代码行

List<String> nameList = new ArrayList<String>();

现在,每次我运行 Sonar 扫描时,它都会在上面的行中显示一个错误,提示我应该改用菱形运算符。现在我了解到,从 Java7 开始,编译器将自动检测并提供 ArrayList 的对象类型,但我的问题是,如果我在声明类时自己这样做会有什么危害吗?

这是 rule link from Sonar website .我真的不明白他们为这条规则提供的例子。

Is there any performance, efficiency or any other type of gain in changing the code to what Sonar is suggesting ?

最佳答案

更少无助和重复的代码,更多代码是可读和可维护的。

List<String> nameList = new ArrayList<String>();

List<String> nameList = new ArrayList<>();

好的,区别不大。

但现在假设您必须将泛型:String 更改为 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<>();

它让事情变得更清晰。

在一个应用程序中,您通常会声明和实例化大量的集合和泛型类。重构它真的很便宜。所以就去做吧。

关于java - Sonar 提示 "The diamond operator ("< >") should be used",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com