首页 » Java » 关于Lombok中注解@Accessors使用说明

关于Lombok中注解@Accessors使用说明

 

一.导读
在一些开源项目中你有可能会遇到别人的代码中用了@Accessors注解,本篇文章就带你分析下关于@Accessor的使用
二.案例演示
(一).引入pom依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</dependency>
(二).案例
1.fluent
说明:fluent为一个布尔值,如果为true生成的set/get方法则没有set/get前缀,默认为false
(1).fluent = true
1).Java源文件编写(AccessorsDemo.java)

@Accessors(fluent = true)
@Data
public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;
}

2).Java编译后文件(AccessorsDemo.class)

public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;

    public AccessorsDemo() {
    }

    public String xiangQuBaUser() {
        return this.xiangQuBaUser;
    }

    public String xiangQuBaPassword() {
        return this.xiangQuBaPassword;
    }

    public AccessorsDemo xiangQuBaUser(String xiangQuBaUser) {
        this.xiangQuBaUser = xiangQuBaUser;
        return this;
    }

    public AccessorsDemo iangQuBaPassword(String xiangQuBaPassword) {
        this.xiangQuBaPassword = xiangQuBaPassword;
        return this;
    }
}

(2).fluent = false
1).Java源文件编写(AccessorsDemo.java)

@Accessors(fluent = false)
@Data
public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;
}

2).Java编译后文件(AccessorsDemo.class)

public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;

    public AccessorsDemo() {
    }

    public String getxiangQuBaUser() {
        return this.xiangQuBaUser;
    }

    public String getxiangQuBaPassword() {
        return this.xiangQuBaPassword;
    }

    public void setxiangQuBaUser(String xiangQuBaUser) {
        this.xiangQuBaUser = xiangQuBaUser;
    }

    public void setxiangQuBaPassword(String xiangQuBaPassword) {
        this.xiangQuBaPassword = xiangQuBaPassword;
    }
}

2.chain
说明:chain为一个布尔值,如果为true生成的set方法返回this,为false生成的set方法是void类型。默认为false,chain默认则为true
(1).chain = false
1).Java源文件编写(AccessorsDemo.java)

@Accessors(chain = false)
@Data
public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;
}

2).Java编译后文件(AccessorsDemo.class)

public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;

    public AccessorsDemo() {
    }

    public String getxiangQuBaUser() {
        return this.xiangQuBaUser;
    }

    public String getxiangQuBaPassword() {
        return this.xiangQuBaPassword;
    }

    public void setxiangQuBaUser(String xiangQuBaUser) {
        this.xiangQuBaUser = xiangQuBaUser;
    }

    public void setxiangQuBaPassword(String xiangQuBaPassword) {
        this.xiangQuBaPassword = xiangQuBaPassword;
    }
}

(2).chain = true
1).Java源文件编写(AccessorsDemo.java)

@Accessors(chain = true)
@Data
public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;
}

2).Java编译后文件(AccessorsDemo.class)

public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;

    public AccessorsDemo() {
    }

    public String getxiangQuBaUser() {
        return this.xiangQuBaUser;
    }

    public String getxiangQuBaPassword() {
        return this.xiangQuBaPassword;
    }

    public AccessorsDemo setxiangQuBaUser(String xiangQuBaUser) {
        this.xiangQuBaUser = xiangQuBaUser;
        return this;
    }

    public AccessorsDemo setxiangQuBaPassword(String xiangQuBaPassword) {
        this.xiangQuBaPassword = xiangQuBaPassword;
        return this;
    }
}

3.prefix
说明:prefix指定前缀的String类型,生成set/get方法时会去掉指定的前缀,要特别注意的是,指定的前缀必须指定到大写字母前一个比如变量xiangQuBa,前缀为xiang,不能是x、
xi、xia、xian
(1).Java源文件编写(AccessorsDemo.java)

@Accessors(prefix = "xiang")
@Data
public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;
}

(2).Java编译后文件(AccessorsDemo.class)

public class AccessorsDemo {
    private String xiangQuBaUser;
    private String xiangQuBaPassword;

    public AccessorsDemo() {
    }

    public String getQuBaUser() {
        return this.xiangQuBaUser;
    }

    public String getQuBaPassword() {
        return this.xiangQuBaPassword;
    }

    public void setQuBaUser(String xiangQuBaUser) {
        this.xiangQuBaUser = xiangQuBaUser;
    }

    public void setQuBaPassword(String xiangQuBaPassword) {
        this.xiangQuBaPassword = xiangQuBaPassword;
    }
}

三.参考文献
官方文档:
https://projectlombok.org/features/experimental/Accessors

原文链接:关于Lombok中注解@Accessors使用说明,转载请注明来源!

0