实际上有几个问题,标题中的第一个:
我如何写一个检查来检查类中的第一个字段是否是一个名为 LOG 的常量?
例如,这将通过检查:
public class MyClass {
private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
.
.
.
}
虽然这会导致检查失败:
public class MyClass {
private String someString;
private static final Logger LOG = LoggerFactory.getLogger(MyClass.class);
.
.
.
}
请注意,只有在类中声明了 LOG 字段时,才应将其声明为第一个变量(我不希望 checkstyle 在检查几乎总是没有定义 LOG 常量的模型类时失败)。
我将如何写一张支票,根据其后缀检查类是否在正确的包中,例如:名为
DateTimeUtils
的类应该在以*.util
结尾的包中?
我将如何编写检查以检查将整数转换为长值(或类似转换)的字母是否写为大写字母,例如:
1000l
应该失败,而 1000L
会通过? (根据 JLS-3.10.1 - Integer Literals - 如果整数文字以 ASCII 字母 L 或 l (ell) 为后缀,则它是 long 类型;否则它是 int 类型 (§4.2.1)。后缀 L首选,因为字母 l(ell)通常很难与数字 1(one)区分开来。)
编辑:感谢@Rob Spoor的评论 检查是否已经存在:模块名称=“UpperEll”
我将如何编写检查是否包装了某个类的某个方法的检查?
比如这个:
MyClass myClass = new MyClass();
myClass
.add(object1)
.add(object2)
.add(object3);
应该通过,但是这个:
MyClass myClass = new MyClass();
myClass.add(object1).add(object2).add(object3);
应该失败。请注意,我只想通过此检查检查此类的此方法。