如何解决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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。