@Builder.Default
时间: 2023-10-14 12:02:28 浏览: 42
@Builder.Default 是 Lombok 提供的一个注解,它可以在使用 Lombok 的 @Builder 注解生成的 Builder 类中为属性设置默认值。
例如,假设有一个名为 Bean 的类,其中包含一个属性 name:
```java
import lombok.Builder;
import lombok.Getter;
@Builder
@Getter
public class Bean {
@Builder.Default
private String name = "defaultName";
}
```
当使用 @Builder 注解生成 Builder 类时,@Builder.Default 注解会将默认值 "defaultName" 应用于 name 属性。这样,在使用生成的 Builder 类创建 Bean 对象时,如果没有显式地设置 name 属性,它将自动设置为默认值 "defaultName"。
示例用法:
```java
Bean bean = Bean.builder().build();
System.out.println(bean.getName()); // 输出: defaultName
```
需要注意的是,使用 @Builder.Default 注解时,属性必须同时使用 @Builder 注解,这样 Lombok 才会生成相应的 Builder 类。
相关问题
@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。
java@Builder.Default和@Value注入yml配置如何共存
在使用@Builder.Default和@Value注入YML配置时,首先需要在类上添加@Value注解,然后在属性上添加@Builder.Default注解。通过这种方式,在使用建造者模式构建对象时,可以使用YML配置中的默认值,并在需要时进行覆盖。
示例如下:
```
@Value
public class Example {
@Builder.Default
private String name = "defaultValue";
}
```
在YML配置中如下配置
```
example:
name: configValue
```
这样在使用建造者模式创建Example对象时, name属性会优先使用配置文件中的值”configValue”,如果没有配置,则使用默认值”defaultValue”。