java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > @Accessors使用

Java中的@Accessors使用详解

作者:java-zh

这篇文章主要介绍了Java中的@Accessors使用详解,@RequiredArgsConstructor是Lombok的一个注解,简化了我们对setter和getter方法操作,它可以作用在类上,也可以作用在类的单个属性上,需要的朋友可以参考下

一、什么是@Accessors注解?

@RequiredArgsConstructor是Lombok的一个注解,简化了我们对setter和getter方法操作。

它可以作用在类上,也可以作用在类的单个属性上。

修饰类的时候对这个类的所有属性都是有效的,修饰单个属性的时候,只对当前的属性有效。

二、@Accessors导包

<dependency>
   <groupId>org.projectlombok</groupId>
   <artifactId>lombok</artifactId>
   <version>1.18.22</version>
</dependency>

三、@Accessors源码讲解和使用案例

从源码可以知道,该注解有三个属性,分别是fluent,chain,prefix。

其中,fluent和chain是boolean类型,默认值都是false,prefix是数组类型,默认值为空。

fluent:默认值为false,当该值为true时,省略对象赋值和取值的set和get前缀

@Data
@Accessors(fluent = true)
public class Animal {
    String name;
    Integer age;
    public static void main(String[] args) {
        Animal animal = new Animal();
        //赋值的时候省略了前缀set
        animal.name("狗");
        //取值的时候省略了前缀get
        String animalName = animal.name();
        System.out.println(animalName);
    }
}

chain:默认值为false,当该值为true时,对应字段的setter方法调用后,会返回当前对象

@Data
@Accessors(chain = true)
public class Animal {
    String name;
    Integer age;
    public static void main(String[] args) {
        //new出的对象直接赋值,返回当前对象
        Animal animal = new Animal().setName("狗").setAge(2);
        System.out.println("直接返回当前对象:"+animal.toString());
    }
}

prefix:该属性是一个字符串数组,默认值为空,该数组有值的时候,表示忽略字段对应的前缀,生成对应的getter和setter方法

@Data
@Accessors(prefix = {"aa", "bb"})
public class Animal {
    String aaName;
    Integer bbAge;
    public static void main(String[] args) {
        Animal animal = new Animal();
        //忽略了前缀aa进行赋值
        animal.setName("狗");
        //忽略了前缀bb进行赋值
        animal.setAge(2);
        System.out.println("忽略了前缀aa和bb:" + animal.toString());
    }
}

到此这篇关于Java中的@Accessors使用详解的文章就介绍到这了,更多相关@Accessors使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文