@NoArgsConstructor 和@Builder
时间: 2023-10-04 19:09:45 浏览: 92
@NoArgsConstructor 和@Builder 是 Lombok 库中的两个注解。
@NoArgsConstructor 是一个用在类上的注解,它可以为类生成一个无参的构造方法。当一个类没有定义任何构造方法时,编译器默认会为该类生成一个无参的构造方法。但是,如果类中定义了有参的构造方法,那么编译器就不会再自动生成无参的构造方法了。使用@NoArgsConstructor 注解可以让编译器为我们自动生成一个无参的构造方法,省去了手动编写的麻烦。
@Builder 是一个用在类或者构造方法上的注解,它可以为我们生成一个建造者模式的构造器。建造者模式是一种创建对象的设计模式,通过链式调用的方式来设置对象的属性值,从而创建出一个完整的对象。使用@Builder 注解时,Lombok 会自动为我们生成一个带有所有属性的建造者类,并且还会生成一个名为 build() 的方法来创建对象。这样,我们就可以通过链式调用的方式来设置对象的属性值,并且最终通过调用 build() 方法来创建出对象。
总而言之,@NoArgsConstructor 注解为我们生成一个无参的构造方法,@Builder 注解为我们生成一个建造者模式的构造器。这两个注解都是为了简化代码编写而存在的。
相关问题
@Data @Builder @NoArgsConstructor @AllArgsConstructor
这是一个带有注解的Java类,使用了Lombok库提供的注解来生成构造函数、Getter和Setter方法。@Data注解会自动生成所有属性的Getter和Setter方法、equals、hashCode和toString方法。@Builder注解可以生成一个内部的Builder类,用于链式调用设置属性的值。@NoArgsConstructor注解生成一个无参的构造函数,@AllArgsConstructor注解生成一个包含所有属性的构造函数。这些注解可以简化代码编写,减少样板代码。
@Builder @NoArgsConstructor
@Builder是一个在Lombok库中使用的注解,它可以自动生成一个带有链式调用的构造器方法。这意味着你可以通过链式调用设置对象的属性值,从而避免了繁琐的setter方法。
@NoArgsConstructor是另一个Lombok注解,它可以自动生成一个无参构造器方法。当你使用@NoArgsConstructor注解时,你无需自己编写一个无参构造器方法,Lombok会为你自动生成。
如果你想要使用@Builder注解,通常建议同时使用@NoArgsConstructor和@AllArgsConstructor注解。当你使用@Builder注解时,如果没有@NoArgsConstructor注解,那么默认的构造器方法将不会被生成。而如果没有@AllArgsConstructor注解,那么没有参数的构造器方法也不会被生成。因此,为了能够在使用@Builder时灵活使用对象的构造器方法,建议同时使用@NoArgsConstructor和@AllArgsConstructor注解。
总结起来,@Builder注解用于生成带有链式调用的构造器方法,@NoArgsConstructor注解用于生成无参构造器方法。而使用这两个注解的同时可以更好地适应不同的对象创建需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [vscode-lombok:Lombok注释Visual Studio Code的官方扩展](https://download.csdn.net/download/weixin_42133680/18328773)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [@Builder与@NoArgsConstructor冲突](https://blog.csdn.net/weixin_44758548/article/details/121777990)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [Lombok 中 @Data、@AllArgsConstructor、@NoArgsConstructor、@Builder 注解的含义与使用](https://blog.csdn.net/tonglingtou1875/article/details/112918578)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]
阅读全文