@Builder是干吗的
时间: 2024-01-25 08:10:39 浏览: 28
@Builder是Lombok提供的一个注解,它可以自动生成一个Builder类,用于简化Java对象的构建过程。使用@Builder注解后,我们就可以通过Builder类来构建对象,而不需要手动编写构造函数。@Builder注解可以用在类、构造函数、方法上,它可以自动为这些元素生成Builder类。下面是一个使用@Builder注解的例子:
```java
@Builder
public class User {
private String name;
private int age;
}
```
使用@Builder注解后,我们就可以通过Builder类来构建User对象,如下所示:
```java
User user = User.builder()
.name("张三")
.age(18)
.build();
```
在上面的例子中,我们通过User.builder()方法获取到了一个Builder对象,然后通过链式调用的方式设置了User对象的属性,最后通过build()方法构建出了User对象。
相关问题
@Builder是干嘛的
@Builder是Lombok库中的一个注解,用于简化Java类的构建过程。通过在类上添加@Builder注解,可以为该类自动生成一个Builder模式的构建器,从而方便地创建对象实例。使用@Builder注解后,在编译时会生成一个内部静态类Builder,该Builder类包含与原始类相同的字段,并且提供了链式调用的方法来设置字段的值。最后,通过调用build()方法,可以创建该类的实例。
@Builder.Default 是什么
@Builder.Default 是 Lombok 提供的一个注解,其作用是为 @Builder 注解生成的建造者类中的成员变量设置默认值。这样在创建对象时,这些成员变量如果没有被赋值,就会使用默认值。比如:
```
@Builder
class Person {
String name;
@Builder.Default
int age = 18;
}
Person p1 = Person.builder().name("Tom").build();
Person p2 = Person.builder().name("Jerry").age(20).build();
System.out.println(p1); // Person(name=Tom, age=18)
System.out.println(p2); // Person(name=Jerry, age=20)
```
在上面的例子中,p1 的年龄没有被赋值,因此使用了默认值 18。p2 的年龄被显式赋值为 20。