Findbugs 错误 - 使用 ImmutableSet.Builder 时的 RV_RETURN_VALUE_IGNORED

问题描述

Findbugs 对以下代码段发出警告。看起来像一个简单的 Builder 类来添加项目并在最后构造。这里有什么问题?

public static Set<Entity> convert(@NonNull final String id,@NonNull final Collection<SomeEntity> list) {

        Builder<Entity> builder = new ImmutableSet.Builder<>();
        final Entity entityOfType1 = createEntity(..);        
  //    Bug type RV_RETURN_VALUE_IGnorED 
        builder.add(entityOfType1);


        final Set<Entity> entitiesOfType2 = createEntity(..);
 //     Bug type RV_RETURN_VALUE_IGnorED 
        builder.addAll(entitiesOfType2);

        final Set<Entity> entitiesOfType3 = createEntity(..);
 //     Bug type RV_RETURN_VALUE_IGnorED 
        builder.addAll(entitiesOfType3);

        return builder.build();
    }

解决方法

您的代码没问题,是 FindBugs 问题。

如果您切换到 SpotBugs,它“是 FindBugs 的精神继承者,在社区的支持下从它停止的地方继续前进”,您将拥有它固定了。 Guava since 23.6 “从 jsr305 @CheckReturnValue@GuardedBy@OverridingMethodsMustInvokeSuper 迁移到 Error Prone 等效项”,为此添加了 SpotBugs 支持2018 年在 PR#538

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...