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 5.6.6 中未加载某些页面

SonarQube 8.1.0 在访问值之前抱怨调用“Optional#isPresent()”

在 Windows 批处理脚本的 for 循环中未通过“查找”命令获得所需的输出

js 如何保存循环内的变量,然后循环外使用这个变量?

使用for循环语句

for循环和while循环的区别?