RequiredArgsConstructor
时间: 2023-04-10 20:02:37 浏览: 60
RequiredArgsConstructor 是一个 Lombok 注解,它可以自动生成一个包含所有 final 或者 @NonNull 注解的字段的构造函数。这个构造函数可以用来简化 Java 类的构造函数的编写。
相关问题
RequiredArgsConstructor 注解
RequiredArgsConstructor 注解是一个Lombok注解,用于生成一个带有标有 @NonNull 注解的变量和 final 变量的构造方法[^1]。它可以简化代码,避免手动编写构造方法。使用该注解后,Lombok会自动根据类中的成员变量生成一个构造方法,该构造方法会接收标有 @NonNull 注解的变量和 final 变量作为参数。
下面是一个使用 RequiredArgsConstructor 注解的示例代码:
```java
import lombok.RequiredArgsConstructor;
@RequiredArgsConstructor
public class Person {
private final String name;
private final int age;
private final String address;
public static void main(String[] args) {
Person person = new Person("John", 25, "123 Main St");
System.out.println(person.getName()); // 输出:John
System.out.println(person.getAge()); // 输出:25
System.out.println(person.getAddress()); // 输出:123 Main St
}
// 省略 getter 和 setter 方法
}
```
在上面的示例中,使用了 RequiredArgsConstructor 注解来生成一个带有三个参数的构造方法,这三个参数分别对应类中的三个成员变量 name、age 和 address。通过使用该注解,我们可以省略手动编写构造方法的步骤,提高代码的简洁性和可读性。
@RequiredArgsConstructor
@RequiredArgsConstructor是Lombok的一个注解,用于简化对@Autowired的使用。在编写Controller层或Service层时,经常需要注入多个mapper接口或service接口,如果每个接口都手动写上@Autowired注解,会显得冗长繁琐。使用@RequiredArgsConstructor注解可以自动生成包含这些依赖的构造方法,从而避免手动注入的麻烦。
相比于@AllArgsConstructor注解,@RequiredArgsConstructor注解只会生成对类的final字段或者non-null字段进行赋值的构造方法。这意味着使用@RequiredArgsConstructor注解时,必须使用final修饰字段或者确保字段的值不为null。而使用@AllArgsConstructor注解时,会生成包含所有字段的构造方法。
总结一下:
- @RequiredArgsConstructor注解可用于简化@Autowired的使用,自动生成包含依赖的构造方法。
- @RequiredArgsConstructor只会为final字段或者non-null字段生成构造方法。
- @AllArgsConstructor会为所有字段生成构造方法,但在与@Value注解一起使用时会失效。