@NoArgsConstructor注解
时间: 2023-10-26 09:46:36 浏览: 29
@NoArgsConstructor 是一个 Lombok 注解,用于为类生成无参构造函数。在 Java 中,如果我们没有定义任何构造函数,编译器会自动为我们生成一个无参构造函数。但是,如果我们定义了一个或多个构造函数,编译器就不会再自动生成无参构造函数了。这时,如果我们需要使用无参构造函数,就需要手动定义一个。使用 @NoArgsConstructor 注解可以让 Lombok 帮我们自动生成无参构造函数,省去了手动编写的麻烦。
相关问题
加了@Data 注解还用加@NoArgsConstructor @AllArgsConstructor
加了@Data注解后,会自动为实体类生成Getter、Setter、equals、canEqual、hashCode和toString等方法。而加了@NoArgsConstructor注解后,会生成一个无参构造函数。同样地,加了@AllArgsConstructor注解后,会生成一个包含所有已声明字段属性参数的构造函数。
因此,如果只需要使用无参构造函数,可以只加@NoArgsConstructor注解;如果需要使用所有参数的构造函数,可以只加@AllArgsConstructor注解;如果需要同时使用无参构造函数和所有参数的构造函数,可以同时加@NoArgsConstructor和@AllArgsConstructor注解。
范例:<<引用:@Data @AllArgsConstructor @NoArgsConstructor的注解的使用实体层@Data @AllArgsConstructor @NoArgsConstructor的注解的使用。引用:@AllArgsConstructor、@Data、@NoArgsConstructor、@RequiredArgsConstructor注解含义及区别?。>>
加了@Data注解后,可以省去手写Getter、Setter、equals、canEqual、hashCode和toString等方法的工作。加了@NoArgsConstructor注解后,可以生成一个无参构造函数。加了@AllArgsConstructor注解后,可以生成一个包含所有已声明字段属性参数的构造函数。因此,加了@Data注解后,可以不再加@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 ]