【发布时间】:2017-04-13 21:06:26
【问题描述】:
我正在尝试为我的存储库编写一个 PMD 规则,我需要所有记录器类都是 log4j 类型。 例如:
代码:
import some;
class Foo{
Logger log = Logger.getLogger(Foo.class.getName());
}
}
我的 PMD 规则的 XPath 查询:
(//ImportDeclaration //Name[@Image!='org.apache.log4j.Logger'] )
|
( //ClassOrInterfaceBodyDeclaration //FieldDeclaration //Type //ReferenceType //ClassOrInterfaceType[@Image='Logger'])
我在这里测试 Logger 类是否在代码中使用并且它不是 log4j 类型,那么它是违规的。
【问题讨论】:
-
这个 xpath 查询似乎有一些错误。我想检查是否在一个类中创建了 Logger 对象,那么应该有一个 apache log4j 的导入。但我不能把和运算符或 if..else 条件相同。