当使用GCC编译C或C时,您可以使用属性((warn_unused_result))标记函数,如果您调用返回某个东西的函数然后不将其分配给任何东西,这将导致编译器抱怨.
我在开发的Java库中有一些方法有这样的方法 – 调用它们然后丢弃结果总是一个bug.我希望API用户能够通过静态分析识别此类错误,例如使用FindBugs或IntelliJ检查.
我想知道是否有一个方法注释通常用于将方法或函数标记为“必须使用结果”. FindBugs为标准库提供了一些特殊的bug查找程序,但一般方法会很有用.
解决方法
完全有一个标准的注释,它是@CheckReturnValue. FindBugs拥有它;见例如
here.
番石榴在内部使用它 – 例如in the configuration methods for Splitter
– 从JSR 305.