我正在尝试编写规则来检测带注释的多线程 Java 程序中的一些错误。作为一个玩具示例,我想检测是否有任何用 @ThreadSafe 注释的方法调用了没有这种注释的方法,没有同步。我正在寻找一种工具,可以让我编写这样的测试。
我看过源分析器,例如 CheckStyle 和 PMD,它们并没有真正的跨类分析功能。字节码分析器,如 FindBugs 和 JLint 似乎很难扩展。
我愿意为更简单的事情找到一个解决方案,但也带来了同样的困难:编写一个自定义规则来检查每个被覆盖的方法是否使用@Override 进行注释。