Required arguments with a Lombok @Builder

前端 未结 9 2491
天涯浪人
天涯浪人 2020-12-12 15:17

If I add @Builder to a class. The builder method is created.

Person.builder().name(\"john\").surname(\"Smith\").build();

I have a requirem

9条回答
  •  一个人的身影
    2020-12-12 16:10

    You can do it easily with Lombok annotation configuration

    import lombok.Builder;
    import lombok.ToString;
    
    @Builder(builderMethodName = "hiddenBuilder")
    @ToString
    public class Person {
    
        private String name;
        private String surname;
    
        public static PersonBuilder builder(String name) {
            return hiddenBuilder().name(name);
        }
    }
    

    And then use it like that

    Person p = Person.builder("Name").surname("Surname").build();
    System.out.println(p);
    

    Of course @ToString is optional here.

提交回复
热议问题