我正在尝试更正外部项目中 Eclipse 中的 FindBugs 插件发现的一些错误,但出现以下错误:
Method ignores return value
在这段代码中:
int maxSize;
Queue<e> queue;
(...)
while (queue.size() > maxSize) {
queue.poll();
}
不幸的是,这超出了我的知识范围,我想知道 poll()
方法除了返回 E
类型的对象外还有什么效果?如果我只删除这段代码可以吗?
最佳答案
poll()
方法将删除当前位于队列头部的对象并将其作为结果返回。
在列出的代码中删除 poll()
将意味着 while
循环将无休止地运行,因为您永远不会通过从中删除元素来更改队列长度。
FindBugs 警告意味着您正在调用一个返回类型不是 void
的方法,并且您没有将结果分配给另一个变量或在表达式中使用它。我不会修改代码,而是尝试使用注释抑制警告或忽略整个警告。
关于java - Queue.poll() 的效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33568727/