我的团队和我刚刚遇到代码库中的错误,因为我们忽略了不可变结构的返回值:https://github.com/rsksmart/rskj/pull/229。
我想注释诸如Trie.put
之类的方法,以指示用户不要丢弃该值(C ++ 17中的la [[nodiscard]]
)以防止将来出现问题。
我们正在使用SonarQube,并且能够打开FindBugs和其他人的检查,但如果代码没有像在基类中不存在的方法上使用@Override
时那样编译,那将是最好的。我已经尝试了@CheckReturnValue
并且它在IntelliJ IDE中给了我一个警告,但没有什么能阻止运送这样的代码。
我们还有哪些其他选择可以在编译时引入更多检查?