我在使用 PMD 检查代码错误时遇到了问题。我不知道如何同时满足两个要求。例如,如果我想检查从 BCD 扩展的文件中不存在的名为 ABC 的方法。我知道如何检查 ABC 是否存在,或者它是否使用 PMD 单独从 BCD 扩展。
像这样:
//PrimaryExpression/PrimaryPrefix/Name [@Image = "ABC"];
//ExtendsList/ClassOrInterfaceType [@Image != "BCD"];
现在,无论如何我可以一起检查这两个。例如,我希望它在类中没有 ABC 扩展 BCD。看来我不能简单地使用和连接这两个 Xpath 查询。另外,我注意到我可以使用 | 与他们建立联系,但是 | 用作或。我需要一个and而不是or。
编辑:
我试过这样的事情:
//PrimaryExpression/PrimaryPrefix/Name[@Image = "ABC"]
[//ancestor::ClassOrInterfaceDeclaration/ExtendsList/
ClassOrInterfaceType[@Image != "BCD"]]
这似乎至少对我有用。但我仍然不能 100% 确定这是否是正确的方法,因为我刚刚尝试过。