小强哥博客

小强哥,小强哥博客,技术大咖

pacaya项目之lombok中的builder注解

lombok注解用过的人肯定不少,我个人经常用的也就有那么三个,@Data @ToString @Slf4j,分别是生成Getter Setter、重载ToString方法以及日志生成组件。

这次在项目上遇到了一个以前没有用过的lombok注解,说出来有些惭愧啊,这注解是@Builder注解,它把我们的Bean类包装为一个构建者模式,编译时增加了一个Builder内部类和全字段的构造器,如下代码所示:

package com.pollyduan;

import java.util.Date;

import lombok.Builder;
import lombok.Data;

@Builder
public class User {
    private Integer id;
    private String userName;
    private String password;
    private String email;
    private Integer age;
    private Date signupTime;

    public static void main(String[] args) {
        /*
         * User user=new User();//The constructor User() is undefined
         */
        User user = new User(1001, "pollyduan", "123456", "pollyduan@pollyduan.com", 30, new Date());
        //或者
        user=User.builder()
                .age(30)
                .userName("pollyduan")
                .build();
        System.out.println(user);
    }
}

以前我们写对象封装的时候是这样写的,

User user = new User(1001, "pollyduan", "123456", "pollyduan@pollyduan.com", 30, new Date());

或者通过user.setXXX这种方式,但是有了builder以后可以写成如下简单方式,

User user=User.builder()
                .age(30)
                .userName("pollyduan")
                .build();
        System.out.println(user);

看着是不是骚气了许多,代码看着更加优雅。

在新项目上又学到一招,像大神艳斌老师致敬,哈哈。