当前位置: 首页 > 知识库问答 >
问题:

FindBugs无法抛出NoSuchElementException

裴学
2023-03-14

我有以下代码段:

@Override
public Message next() {
    if (!this.hasNext()) {
        throw new NoSuchElementException();
    }
    // return statement
}

然而,findbugs说有一种不好的做法:

It:Iterator next()方法不能抛出NoSuchElementException(It\u NO\u SUCH\u元素),该类实现java。util。迭代器接口。然而,它的next()方法不能抛出java。util。无接触元素异常。应该更改next()方法,以便在没有更多元素可返回时调用它时抛出NoTouchElementException。

我不明白如何修复代码以通过findbugs检查。有什么想法吗?

共有1个答案

空俊语
2023-03-14

尝试在项目上清除mvn。我也有同样的问题,因为SpotBugs使用以前编译的类而没有更改。所以,mvn清理或手动删除这个类对我很有帮助。

更新。此外,您可能不需要从Next()方法调用hasNext()

 类似资料:
  • //接口 我从这个问题中读到:不能构造-Jackson的实例,但似乎没有帮助,因为我有太多的类从接口实现,不仅仅是一次。

  • 从FindBugs错误描述中考虑以下内容 NP:保证取消引用空值(NP\u guaranted\u DEREF) 有一条语句或分支,如果执行该语句或分支,将保证此时某个值为null,并保证该值被取消引用(在涉及运行时异常的转发路径上除外)。 请注意,如果(x==null)这样的检查抛出新的NullPointerException();被视为x的解引用。 除了在涉及运行时异常的前进路径上是什么意思?

  • 问题内容: 因此,我有一个表,已将其定义为hibernate状态,如下所示: 当我尝试针对此表编写一个简单查询时: 我收到以下错误: 为什么不能hibernate找出类上的dbgroupid? 问题答案: 可能是因为您的getter(和setter)没有遵循javabeans约定。它应该是: 我的建议是-命名字段,然后使用IDE生成设置器和获取器。它将遵循惯例。(另一件事,这是一个偏好问题,但我认

  • 问题内容: 我正在尝试使用Java,并想通过Java的客户端/服务器进行测试,以使客户端将自定义类(消息)的简单对象发送到服务器。问题是我一直在服务器端收到ClassNotFoundException。 我认为其余代码似乎还不错,因为其他对象(例如String)可以顺利通过。 我在不同的位置分别有两个不同的netbeans项目,分别用于客户端和服务器。 他们每个人在各自的程序包下都有自己的Mess

  • FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。它检查类或者 JAR 文件,将字节码与一组缺陷模式进行对比以发现可能的问题。有了静态分析工具,就可以在不实际运行程序的情况对软件进行分析。不是通过分析类文件的形式或结构来确定程序的意图,而是通常使用 Visitor 模式。 下载之后,把解冻后的文件拷贝到 $ECLIPSE_HOME/plugins/目录下,重新启动e

  • 我正在通过Sonarqube在代码上运行findbugs,我得到一个空指针解引用错误: 有一个语句分支,如果执行,保证空值将被取消引用。 故障代码很简单: 我想知道这怎么可能。NPE唯一可能的地方是调用x.compareTo(y)时,但如果x=null,Java将永远不会分析该分支,对吗? 这是一个bug,还是我遗漏了Java分析这条语句的方法? 更新 谢谢你的意见。最后我建议他们改成: 我发现这