Sonarqube 抱怨 for 循环中未使用的变量 [重复]
Posted
技术标签:
【中文标题】Sonarqube 抱怨 for 循环中未使用的变量 [重复]【英文标题】:Sonarqube complaining about unused variable in for loop [duplicate] 【发布时间】:2021-02-12 19:08:25 【问题描述】:在我的项目中,我有一个简单的函数来计算可迭代的长度(因为我认为没有简单的方法可以得到它?不接受 .size()
或 .length()
?)这是代码:
public int getIterableSize(Iterable<User> users)
int size = 0;
for(User user : users)
size++;
return size;
我还使用 Sonarqube 来保持我的代码质量,我得到以下关于此函数的代码气味:
删除这个未使用的“用户”局部变量。
一定有一种简单的方法可以摆脱这种情况,对吧?也许是 for 循环的替代方案,也许是 iterable 提供的不同功能?
【问题讨论】:
你的函数可以这样返回。return users.stream().count();
@PandeyAmit iterable 似乎没有 stream() 的功能
users
是哪种类型?
@EldarB。这是一个可迭代的
这能回答你的问题吗? Get size of an Iterable in Java
【参考方案1】:
您可以使用@SuppressWarnings("unused")
对其进行注释。
任一方法:
@SuppressWarnings("unused")
public int getIterableSize(Iterable<User> users)
int size = 0;
for(User user : users)
size++;
return size;
或者变量:
public int getIterableSize(Iterable<User> users)
int size = 0;
for(@SuppressWarnings("unused") User user : users)
size++;
return size;
各种 IDE 可以自动提供这两个修复。
【讨论】:
以上是关于Sonarqube 抱怨 for 循环中未使用的变量 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
SonarQube 8.1.0 在访问值之前抱怨调用“Optional#isPresent()”