注解 @Builder 和 @Accessors 简化 get/set 方法

使用前的准备

@Builder 和 @Accessors 都是 lombok 下的注解,都可以用于简化 get/set 方法。
要使用 Lombok,需要添加插件并导入依赖。插件直接在 IDEA 的 settings-Plugins 中搜索 lombok,下载后重启 IDEA 即可,依赖如下:

注解 @Builder 和 @Accessors 简化 get/set 方法
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.10</version>
</dependency>

@Builder 注解

@Builder 注解可以更方便的在对象初始化的时候对属性进行赋值,不用大量的调用 setter 方法,代码更易于阅读与编写。

@Data
@Builder
@NoArgsConstructor
public class User {
    String name;
    String address;
   public static void main(String[] args) {
        //builder 方式赋值。取值仍然要通过 get。
        User user=new User().builder().name("teacher").address(" 河南省 ").build();
        //set 方式赋值
        user.setName("student");
        user.setAddress(" 北京市 ");
    }
}

上述在使用中会报错,会提示“不应该通过类实例访问静态成员”,直接用类名调用即可,例如:

User user=User.builder().name("teacher").address(" 河南省 ").build();


@Accessors 注解

@Accessors 有 3 个值:flunt,chain,prefix;

  1. fluent ,Boolean 类型,默认 false,且 flunt 为 true,则 chain 默认为 true。
    如果为 true,name 的 getter 就是 name(),setter 方法就是 name(T newValue)。

  2. chain ,Boolean 类型,默认 false,且 flunt 为 true,则 chain 默认为 true。
    如果为 true,产生的 setter 返回的 this 即对象实例本身而不是 void,因此可以直接再使用 set 方法或者调用其他函数。

  3. prefix ,一系列 string 类型。如果显示,属性必须加上某些定义的前缀。前缀被提取出来后才是属性名。字符都是字母,紧接着前缀后的字符一定不能是小写字母。例如,pepper 对前缀 p 不是相等匹配,而跟 pEpper 是匹配的 (也就意味着属性的基本名字是 epper)。

注意:@Accessors 注解可以在类和属性上使用。如果 @Accessors 注解在一个属性上,再对那个属性的类的 @Accessors 注解就会被忽略。

@Data
@Accessors(fluent = true)    
@NoArgsConstructor
public class User {
    String name;
    String Address;

    public static void main(String[] args) {
        //accesstor flunt=true,此时默认 chain=true
        User user=new User().name("teacher").Address(" 河北 "); // 赋值,类似 set 方法
        String address=user.Address();                       // 取值,类似 get 方法
    }
}
@Data
@Accessors(chain = true)
@NoArgsConstructor
public class User {
    String name;
    String Address;

    public static void main(String[] args) {
        //accesstor  chain=true,未设置 flunt,默认 flunt=false
        User user=new User().setName("teacher").setAddress(" 河北 "); // 赋值,类似 set 方法
        String address=user.getAddress();                       // 取值,类似 get 方法
    }
}


目录
  • 使用前的准备
  • @Builder 注解
  • 上述在使用中会报错,会提示“不应该通过类实例访问静态成员”,直接用类名调用即可,例如:
  • @Accessors 注解
  • 目录
  • 使用前的准备
  • @Builder 注解
  • 上述在使用中会报错,会提示“不应该通过类实例访问静态成员”,直接用类名调用即可,例如:
  • @Accessors 注解
  • 手机扫描二维码访问

    本文标题:《注解 @Builder 和 @Accessors 简化 get/set 方法》作者:极四维博客
    原文链接:https://cway.top/post/765.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年10月    »
    123456
    78910111213
    14151617181920
    21222324252627
    28293031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合