Java 最佳实践-Collection.add()和处理布尔返回值

Java 最佳实践-Collection.add()和处理布尔返回值,java,netbeans,collections,Java,Netbeans,Collections,我没有发现任何与这个问题相关的东西。我刚刚开始使用NetBeans,它发出了关于手动集合添加循环的“警告”: for(String str : strings){ list.add(str) } Net Beans确实希望我处理集合加法的布尔返回值: for(String str : strings){ boolean add = list.add(str) } 我从来没有真正考虑过如果不存储/处理collection.add()方法的返回是否有错误或疏忽。我经常看到忽略返回值,因为它可能没

我没有发现任何与这个问题相关的东西。我刚刚开始使用NetBeans,它发出了关于手动集合添加循环的“警告”:

for(String str : strings){ list.add(str) }
Net Beans确实希望我处理集合加法的布尔返回值:

for(String str : strings){ boolean add = list.add(str) }
我从来没有真正考虑过如果不存储/处理collection.add()方法的返回是否有错误或疏忽。我经常看到忽略返回值,因为它可能没有价值。这是不对的吗?不处理返回布尔值的后果是什么?或者这只是一个IDE的东西


谢谢大家。

IDE警告您,返回值未使用。您可以在设置中关闭此警告


注意:如果在某些特殊情况下需要测试项目是否已添加,则可以使用此返回的
布尔值,否则您可以忽略它。

警告不是关于忽略
集合的返回值。添加
,而是关于手动循环数组并添加到集合。NetBeans确实不喜欢手动阵列复制,更喜欢使用API方法进行复制

在您的例子中,这将是
list.addAll(Arrays.asList(strings))
put@SuppressWarnings({“unchecked”、“null”、“unused”}),它的功能是 例如:


好的,要么您将IDE配置为警告您,要么它是默认设置。无论哪种方式,如果不需要返回值,则忽略它。据我所知,
List#add
很少使用(但
Set#add
更多)。@Tom那么如果人们不使用
add
怎么把东西放在列表中呢?@wvdz我指的是返回值:D。当我写最后一句话时,看起来我有点发疯了。@Tom啊,好的,有道理。不过我想知道。。。这真的更可取吗?假设Arrays.asList将创建一个
新的ArrayList
,而
addAll
将在该ArrayList上循环。因此,它的简洁性似乎更好,清晰度也差不多,但性能更差。@Mshnik您必须向NetBean的维护人员提出这一点,说明他们为什么选择它作为警告。在NetBeans上,复制集合或数组的首选方法是使用API提供的方法。这就是为什么OP得到了他要问的警告,这是有道理的。我认为我对C++和指针的掌握比较好(但我知道这里不一样),但是看到这样的警告,只会让我进入“你的内存管理不正确的分配”空间…@ MSHNIK<代码>数组。它不会复制所有元素。调用
addAll
比循环和添加自己更可取,因为它可以预先分配目标中的空间。
@SuppressWarnings({"unchecked", "null", "unused"})
private void myfuntion() {
   ...
   for(String str : strings){ list.add(str); }

}