我同时使用PMD来检查我的代码错误,遇到了一个问题。 我不知道如何同时满足两个要求。 例如,如果我想查一个名为ABC方法不存在文件从BCD延伸。 我知道如何检查ABC是否存在或是否从BCD分别使用PMD延伸。
像这样:
//PrimaryExpression/PrimaryPrefix/Name [@Image = "ABC"];
//ExtendsList/ClassOrInterfaceType [@Image != "BCD"];
现在,反正是有,我可以检查这两个在一起。 举例来说,我希望它在课堂上没有ABC扩展BCD。 我似乎不能简单地用之类的东西并连接这两XPath查询。 另外,我发现我可以用| 得到与他们联系,但| 工作原理或。 我需要一个在这里,而不是或。
编辑:
我想是这样的:
//PrimaryExpression/PrimaryPrefix/Name[@Image = "ABC"]
[//ancestor::ClassOrInterfaceDeclaration/ExtendsList/
ClassOrInterfaceType[@Image != "BCD"]]
这似乎是它至少为我工作。 但我仍然不是100%肯定这是否是因为我只是尝试这样做出来的正确方法。