提示信息

Java中@RequiredArgsConstructor注解的基本知识分析(带Demo)

原来 已关注

@RequiredArgsConstructor 是 Lombok 提供的一个注解,它主要用于自动生成一个包含所有 final 字段和标记为 @NonNull 字段的构造函数。这可以减少重复的样板代码,帮助开发者提高效率和代码可读性。

基本知识分析

  • 自动生成构造函数@RequiredArgsConstructor 会自动生成一个构造函数,构造函数中参数的顺序取决于字段的声明顺序。
  • 支持 final@NonNull 字段:只有声明为 final 或标记为 @NonNull 的字段会被包含在生成的构造函数中。普通的字段不会被包括在内。
  • 与其他构造函数注解的互斥:在同一个类中,@RequiredArgsConstructor 无法与 @NoArgsConstructor@AllArgsConstructor 共存;如果需要同时存在,请自行编写构造函数。

使用Demo

假设我们有一个简单的 Java 类,其中需要自动生成构造函数。

  1. import lombok.RequiredArgsConstructor;
  2. @RequiredArgsConstructor
  3. public class User {
  4. private final String username; // 这个字段将包含在构造函数中
  5. private final String password; // 这个字段将包含在构造函数中
  6. private String email; // 不会包含在构造函数中,因为不是 final
  7. // 这个类将有一个构造函数 User(String username, String password)
  8. }
  9. public class Demo {
  10. public static void main(String[] args) {
  11. // 使用 Lombok 自动生成的构造函数来创建 User 对象
  12. User user = new User("JohnDoe", "secret");
  13. // 以下代码将不会编译,因为没有提供 email 参数
  14. // User user = new User("JohnDoe", "secret", "john.doe@example.com"); // 编译错误
  15. // email 字段需要单独设置
  16. user.setEmail("john.doe@example.com");
  17. }
  18. }

Lombok 配置

  • 为了使用 Lombok,首先确保你在项目中引入了 Lombok 依赖。这可以通过在 Maven 项目的 pom.xml 文件中添加以下依赖:
  1. <dependency>
  2. <groupId>org.projectlombok</groupId>
  3. <artifactId>lombok</artifactId>
  4. <version>1.18.28</version> <!-- 请使用最新版 -->
  5. <scope>provided</scope>
  6. </dependency>
  • 在 IDE(如 IntelliJ IDEA 或 Eclipse)中,请确保已安装 Lombok 插件,并配置项目以支持注解处理。

注意事项

  • 使用 @RequiredArgsConstructor 时,类中的所有 final@NonNull 字段都必须在创建对象时提供值,因此在设计类时需要考虑哪些字段应该是 final
  • @RequiredArgsConstructor 会隐式处理 @NonNull 检查,如果 @NonNull 字段传入 null,会在运行时抛出 NullPointerException
    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
原来 关注 已关注

最近一次登录:2024-11-21 00:14:00   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图