Ami*_*mit 4 java sonarqube sonarqube-scan
所以我在我的文件中有下面的代码行
List<String> nameList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
现在我每次运行声纳扫描时都会在上面的行中显示错误,说我应该使用菱形运算符.现在我明白从Java7编译器会自动检测并提供ArrayList的对象类型,但我的问题是,如果我自己在声明类时这样做有害吗?
这是Sonar网站的规则链接.我真的不明白他们提供这个规则的例子.
在将代码更改为Sonar建议的内容时,是否有任何性能,效率或任何其他类型的收益?
如果我在宣布课程时自己这样做会有伤害吗?
不,这样做没有任何伤害,除了添加到代码中的额外冗长.从相同的规则链接我们可以读到它
Java 7引入了菱形运算符(<>)来减少泛型代码的冗长
在将代码更改为Sonar建议的内容时,是否有任何性能,效率或任何其他类型的收益?
除了你(和你的团队)将有一个更简洁的代码,不,没有,这是事实.
进一步阅读:
减少你无助和重复的代码,更多的代码是可读和可维护的.
List<String> nameList = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
要么
List<String> nameList = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
好不是很多差异.但是现在假设您必须通过Integer更改泛型:String,第一种方法是进行两次修改:
List<Integer> nameList = new ArrayList<Integer>();
^------ -------------^
Run Code Online (Sandbox Code Playgroud)
真的不好看.
钻石需要单个:
List<Integer> nameList = new ArrayList<>();
^---
Run Code Online (Sandbox Code Playgroud)
但举另一个例子:
Map<String, List<Integer>> map = new HashMap<String, List<Integer>>();
Run Code Online (Sandbox Code Playgroud)
要么
Map<String, List<Integer>> map = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
它让事情变得更加清晰.
在应用程序中,通常会声明并实例化大量的集合和泛型类.重构它真的很便宜.所以就这么做吧.
| 归档时间: |
|
| 查看次数: |
594 次 |
| 最近记录: |