如何将Java方法标记为"必须使用结果"以进行静态分析?

Mik*_*arn 7 java annotations static-analysis

当使用GCC编译C或C++时,您可以使用属性((warn_unused_result))标记函数,如果您调用返回某些内容的函数然后不将其分配给任何内容,则会导致编译器抱怨.

我在开发的Java库中有一些方法有这样的方法 - 调用它们然后丢弃结果总是一个bug.我希望API用户能够通过静态分析识别此类错误,例如使用FindBugs或IntelliJ检查.

我想知道是否有一个方法注释通常用于将方法或函数标记为"必须使用结果".FindBugs为标准库提供了一些特殊的bug查找程序,但一般方法会很有用.

Lou*_*man 8

完全有一个标准的注释,它是@CheckReturnValue.FindBugs拥有它; 看这里.

番石榴在内部使用它-例如,在配置方法Splitter -从JSR 305.