@Builder注解如何在Java中使用?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
Lombok中@Builder用法
1,建造者模式简介:Builder使用创建者模式又叫建造者模式。简单来说,就是一步步创建一个对象,它对用户屏蔽了里面构建的细节,但却可以精细地控制对象的构造过程。
2,注解类构建器。java注释:
* builder注释创建一个所谓的& # 39;builder # 39;方面是注释的类或类
, *,其中包含一个成员注释与{@code @Builder}。
, * & lt; p>
, *如果带注释的一员,必须构造函数或方法。如果一个类注释,
, *然后用所有字段生成一个私有构造函数作为参数
, *(好像{@code @AllArgsConstructor(访问=AccessLevel.PRIVATE)}
,存在*> import lombok.Builder; import lombok.Getter; @Builder//@ getter public class  Person { private 才能;String 名称; private 才能String id; private 才能;String  phoneNumeber; }②编写测试类。
public class Test { public 才能;static  void main (String [], args), { ,,,Person.PersonBuilder builder =, Person.builder (); ,,,builder.phoneNumeber (“11111”) ,,,,,,,.id (“1123”) ,,,,,,,. name (“asdd") .build (); ,,,System.out.println(施工); ,,} }③编译并执行的结果为:
的人。PersonBuilder (name=asdd id=1123, phoneNumeber=11111)④编译后的字节码分析:
////,Source code  recreated 得到a .class file by IntelliJ 想法//,(powered by Fernflower 反编译器)//package com.atyunniao; public class  Person { private 才能;String 名称; private 才能String id; private 才能;String  phoneNumeber; 人的才能(String 名字,,String id,, String phoneNumeber), { ,,,this.name =,名称; ,,,this.id =, id; ,,,this.phoneNumeber =, phoneNumeber; ,,} public 才能static Person.PersonBuilder  builder (), { ,,,return new Person.PersonBuilder (); ,,} public 才能;String  getName (), { ,,,return this.name; ,,} public 才能;String  getId (), { ,,,return this.id; ,,} public 才能;String  getPhoneNumeber (), { ,,,return this.phoneNumeber; ,,} public 才能static class  PersonBuilder { ,,,private String 名称; ,,,private String id; ,,,private String phoneNumeber; ,,,PersonBuilder (), { ,,,} ,,,public Person.PersonBuilder 名字(String 名称),{ ,,,,,this.name =,名称; ,,,,,return ; ,,,} ,,,public Person.PersonBuilder id (String id), { ,,,,,this.id =, id; ,,,,,return ; ,,,} ,,,public Person.PersonBuilder phoneNumeber (String phoneNumeber), { ,,,,,this.phoneNumeber =, phoneNumeber; ,,,,,return ; ,,,} ,,,public Person 建立(),{ ,,,,,return new 人(this.name, this.id,, this.phoneNumeber); ,,,} ,,,public String toString (), { ,,,,,return “Person.PersonBuilder (name=? +, this.name +,,,, id=? +, this.id +,,,, phoneNumeber=? +, this.phoneNumeber +,“)“; ,,,} ,,} }@Builder的作用:
生成一个全属性的构造器
生成了一个返回静态内部类PersonBuilder对象的方法
生成了一个静态内部类PersonBuilder,这个静态内部类包含人类的三个属性,无参构造器,三个方法名为属性名的方法,返回人对象的制造方法,输出静态内部类三个属性的toString()方法。⑤建造者使用过程:
, Person.PersonBuilder builder =, Person.builder (); ,,,builder.phoneNumeber (“11111”) ,,,,,,,.id (“1123”) ,,,,,,,. name (“asdd") .build (); null@Builder注解如何在Java中使用