eclipse向我发出警告“潜在的空指针访问:变量ann在此位置可能为空”:
SomeAnnotation ann = type.getAnnotation( SomeAnnotation.class );
Preconditions.checkNotNull( ann, "Missing annotation on %s", type );
for( String value : ann.value() ) { // <-- warning happens here
}
我正在使用Eclipse3.7和guava。有没有办法摆脱这个警告?
我可以用 SuppressWarnings("null")
但我不得不把它附加到我认为是个坏主意的方法上。
2条答案
按热度按时间p3rjfoxz1#
你可以停止使用eclipse。
嘿,这是个解决办法。它可能不是你想要的,但它解决了问题,并不是一个真正坏的解决方案。
更严重的是,你可以:
调整编译器警告设置,
使用
SuppressWarnings
在方法或类级别,使用更现代的编译器(显然,对于简单的情况,更高的版本不会触发这种情况),
重写代码以使其工作,并指定
checkNotNull
至ann
.kxkpmulp2#
Eclipse4在编译器中更好地支持空检查和资源跟踪。
另一个解决方案是编写自己版本的
checkNotNull
像这样:现在您可以使用这种方法:
(我省略了
checkNotNull()
接收错误信息;它们以同样的方式工作)。我想知道为什么guava不这么做,因为他们已经在其他地方使用了这些注解。