@RequiredArgsConstructor和@ArgsConstructor
时间: 2024-08-13 11:01:52 浏览: 111
Intellij IDEA如何去掉@Autowired 注入警告的方法
`@RequiredArgsConstructor` 和 `@AllArgsConstructor` 是 Java 中的注解,它们都来自 Lombok 库,这是一个简化编码的工具。Lombok 提供了一种无侵入的方式来生成构造函数,使得编写冗长的构造器变得更加简洁。
- `@RequiredArgsConstructor`: 这个注解会在所有有参数的情况下自动生成一个带有所有必需参数(即非空和默认值)的构造器。如果某个字段没有提供默认值,你需要显式地为它提供一个值。
```java
public class MyClass {
private String name;
private int age;
// Lombok 自动生成的 @RequiredArgsConstructor 构造器
public MyClass(String name) { this(name, 0); } // 假设 age 的默认值是 0
}
```
- `@AllArgsConstructor`: 它更进一步,除了必要的参数外,还会包含所有可见的(non-private)字段作为构造器参数。这可以避免遗漏任何一个字段导致构造器不可用的情况。
```java
public class AnotherClass {
private String firstName;
private String lastName;
private List<String> hobbies;
// Lombok 自动生成的 @AllArgsConstructor 构造器
public AnotherClass(String firstName, String lastName, List<String> hobbies) {}
}
```
阅读全文