java - 摆脱 NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE?

标签 java guava findbugs

我在这段代码中得到 NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE

final Integer id = Ints.tryParse(idString);
FailReason.NO_SUCH_THING.checkCondition(id!=null);
something.setId(id.intValue());

在这里,checkCondition 就像Preconditions.checkArgument 一样工作除了它抛出我自己的异常。在这里抛出 NPE 或 IAE 是不合适的,因为它正在检查外部输入而不是编程错误。

FindBugs 提示 “方法的返回值在没有进行 null 检查的情况下被取消引用,并且该方法的返回值通常应该检查是否为 null。这可能会导致 NullPointerException,当代码是执行。

我可以教 FindBugs 当参数为 falsecheckCondition 永远不会正常返回吗?

最佳答案

我(有点)通过添加解决了它

assert id!=null;

它是多余的和丑陋的,但仍然没有 @SuppressFBWarnings 丑陋,而且更本地化。

关于java - 摆脱 NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23746395/

相关文章:

java - 如何实现对两个相同类的一个引用?

java - 在 Logback 中创建自定义布局

java - Guava Cache的读锁是否免费

java - FindBugs 说我需要 "use a prepared statement"?如何?

java - 如何在一个巨大的 Java 项目中捕获 System.exit() 代码?

java - 对于 String 类型, getText() 方法未定义。关于从EditText获取内容

java - 数字文字中的下划线

java - 如何创建一个空的 Guava ImmutableList?

groovy - 如何在 Spock 中断言列表仅包含某个特定元素?

java - FindBugs 生成不同格式的报告