我有一个Android项目,大多数类都定义了一个包含类名的字符串常量,用作Log
类方法的标记参数。例如:
public final class MyFileReader
{
private static final String LOG_TAG = "MyFileReader";
// rest of class
}
是否可以编写CheckStyle规则来检查以这种方式定义的任何值是否与类的名称(或文件名的根)相匹配?请记住:
LOG-TAG
值,但是他们这样做的地方必须与班级名称相匹配。MyFileReader.class.getSimpleName()
不是一个选项,因为在发布版本中,类名称由ProGuard优化。答案 0 :(得分:1)
有趣的用例!我认为你可以通过使用Checkstyle Addons(我是维护者)编写自己的支票而逃脱。它提供了您可以使用的LocationReference检查。
在enabling Checkstyle Addons之后,配置如下所示的检查:
<module name="LocationReference">
<property name="variableNames" value="LOG_TAG" />
<property name="location" value="simpleclass"/>
</module>