检查类中的第一个字段是否为名为 LOG 的常量

问题描述 投票:0回答:0

实际上有几个问题,标题中的第一个:

  1. 我如何写一个检查来检查类中的第一个字段是否是一个名为 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 常量的模型类时失败)。

  2. 我将如何写一张支票,根据其后缀检查类是否在正确的包中,例如:名为

    DateTimeUtils
    的类应该在以
    *.util
    结尾的包中?

  3. 我将如何编写检查以检查将整数转换为长值(或类似转换)的字母是否写为大写字母,例如:

    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”

  4. 我将如何编写检查是否包装了某个类的某个方法的检查?

    比如这个:

    MyClass myClass = new MyClass();
    myClass
        .add(object1)
        .add(object2)
        .add(object3);
    

    应该通过,但是这个:

    MyClass myClass = new MyClass();
    myClass.add(object1).add(object2).add(object3);
    

    应该失败。请注意,我只想通过此检查检查此类的此方法。

java checkstyle maven-checkstyle-plugin
© www.soinside.com 2019 - 2024. All rights reserved.