@Data@NoArgsConstructor@AllArgsConstructor 这几个常用注解什么意思?
2023-12-18 13:10:51
这三个注解通常用于简化Java类的开发,特别是在使用一些框架时,如Lombok。让我们逐个解释这些注解的作用:
1. @Data
@Data
是 Lombok 提供的一个组合注解,它包含了一组常用注解的功能,如 @ToString
、@EqualsAndHashCode
、@Getter
、@Setter
和 @RequiredArgsConstructor
。
@ToString
:自动生成toString
方法,方便打印对象的内容。@EqualsAndHashCode
:自动生成equals
和hashCode
方法,方便对象比较。@Getter
:自动生成所有字段的get
方法。@Setter
:自动生成所有字段的set
方法。@RequiredArgsConstructor
:生成带有参数的构造方法,对于被final
修饰的字段,会生成参数存在的情况下的构造方法。
通过使用 @Data
注解,你不再需要手动编写这些繁琐的方法,可以简化类的代码结构。
2. @NoArgsConstructor
@NoArgsConstructor
是 Lombok 提供的注解,用于自动生成无参构造方法。
在Java中,如果你不手动提供构造方法,编译器会默认生成一个无参构造方法。但是,如果你手动提供了带参构造方法,编译器就不再生成无参构造方法。@NoArgsConstructor
解决了这个问题,它会在编译时生成一个无参构造方法,确保你的类可以在没有提供参数的情况下实例化。
3. @AllArgsConstructor
@AllArgsConstructor
是 Lombok 提供的注解,用于自动生成包含所有字段的构造方法。
通常情况下,如果你的类有很多字段,手动编写一个包含所有字段的构造方法会显得很繁琐。使用 @AllArgsConstructor
注解可以让 Lombok 在编译时为你自动生成一个包含所有字段的构造方法,省去了重复的劳动。
综合来说,这三个注解(@Data
、@NoArgsConstructor
、@AllArgsConstructor
)都是为了减少开发者在编写Java类时的模板式代码,提高代码的简洁性和可读性。在使用这些注解时,记得添加相应的依赖以使Lombok工作,比如在Maven项目中添加以下依赖:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version> <!-- 使用最新版本 -->
<scope>provided</scope>
</dependency>
或者在Gradle项目中:
implementation 'org.projectlombok:lombok:1.18.22' // 使用最新版本
annotationProcessor 'org.projectlombok:lombok:1.18.22'
文章来源:https://blog.csdn.net/m0_64880608/article/details/135052810
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!