java Lombok之@Accessors用法及说明

Lombok是Java对象的库,通过注解的形式简化了对象的创建及Getter和Setter方法的定义等繁琐操作。其中,@Accessors注解是Lombok中提供的方便生成链式方法的注解。

Java Lombok之@Accessors用法及说明

概述

Lombok是Java对象的库,通过注解的形式简化了对象的创建及Getter和Setter方法的定义等繁琐操作。其中,@Accessors注解是Lombok中提供的方便生成链式方法的注解。

@Accessors注解的使用

@Accessors注解有下列常用属性:

  1. fluent:若为true,则生成的setter方法返回该对象,否则无返回值;
  2. chain:若为true,则生成的setter方法返回该对象;
  3. prefix:给生成的方法加上前缀;
  4. readOnly:是否给成员变量设置为final;
  5. lazy : 若为true,则会生成双重检查锁的单例模式代码。

示例1

@Data
@Accessors(chain = true)
public class Person {
    private String name;
    private int age;
    private String gender;
}

public class TestPerson {

    @Test
    public void testSetValues() {
        Person person = new Person();
        person.setName("Tom").setAge(20).setGender("male");
        System.out.println(person);
    }
}

在这段代码中,我们定义了一个Person类,使用@Data注解,同时为该Person类使用了@Accessors(chain = true)注解,这表示开启链式编码模式。在TestPerson中我们使用该Person类,并调用set方法为其成员变量赋值并打印输出。

示例2

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ToString(exclude = "password")
@Accessors(chain = true, prefix = "u")
public class User {
    private String name;
    private String password;
    private int age;
    private String email;
}

public class TestUser {

    @Test
    public void testSetValues() {
        User user = new User().setUName("test").setUPassword("123456").setUAge(18).setUEmail("test@test.com");
        System.out.println(user);
    }
}

在这段代码中,我们定义了一个User类,使用@Getter、@Setter、@NoArgsConstructor、@AllArgsConstructor、@ToString(exclude = "password")注解,同时为该User类使用了@Accessors(chain = true, prefix = "u")注解,这表示开启链式编码模式并且生成的方法加上u前缀。在TestUser中我们使用该User类,并调用set方法为其成员变量赋值并打印输出。

总结

@Accessors注解可以方便的生成符合编码规范的链式调用方法,从而简化对象创建及对对象成员变量的操作,提高了代码的可读性。

本文标题为:java Lombok之@Accessors用法及说明

基础教程推荐