@Builder注解如何在Java中使用

  介绍

@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中使用