Checkstyle-带有批注的方法必须在构造函数之前

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Checkstyle-带有批注的方法必须在构造函数之前相关的知识,希望对你有一定的参考价值。

如何定义Checkstyle验证以确保带有特定批注的所有方法出现在Java类的构造函数之前?

验证应接受以下内容:

class User {

    @Injected // -> [OK]: method with @Injected is before the constructor. 
    public void setName(String name) {
        this.name = name;
    }

    public User(String name) {
        this.name = name;
    }
}

以下内容应引起Checkstyle违规:

class User {
    public User(String name) {
        this.name = name;
    }

    @Injected // -> [NOK]: method should be before the constructor
    public void setName(String name) {
        this.name = name;
    }
}

是否可以配置Checkstyle Check available out of the box来检查此内容,或者需要custom Check implemenation来实现此功能?

答案

否,没有开箱即用的Checkstyle Check。

为此,需要实现自定义Checkstyle Check,并且必须通过将其添加到验证配置xml中来触发此自定义验证。

以上是关于Checkstyle-带有批注的方法必须在构造函数之前的主要内容,如果未能解决你的问题,请参考以下文章

构造函数主要特点

this指针和构造函数

JAVA中构造方法和普通方法的区别

如何在 c# 中基于构造函数方法创建数组?

为啥 Checkstyle 中默认不允许受保护的变量?

带有委托构造函数的 constexpr