lombok @Builder注解
时间: 2023-07-03 14:33:52 浏览: 127
lombok中的@Builder注解可以让我们使用一种更简洁的方式创建Java Bean对象,它可以自动生成Builder模式的代码,使得我们可以使用链式调用来设置Java Bean对象的属性。使用@Builder注解可以大大减少代码的冗余,提高代码的可读性和编写效率。
具体来说,使用@Builder注解可以自动生成一个静态内部类Builder,该Builder类包含了与Java Bean对象属性相同的字段,并且还包含了一些setter方法,这些setter方法返回Builder对象本身,使得我们可以使用链式调用来设置Java Bean对象的属性。最后,调用Builder类的build()方法可以创建一个Java Bean对象。
例如,如果我们想要创建一个包含name和age属性的Java Bean对象,可以这样使用@Builder注解:
```
@Builder
public class Person {
private String name;
private int age;
}
```
然后,我们可以使用如下代码来创建一个Person对象:
```
Person person = Person.builder()
.name("Tom")
.age(18)
.build();
```
这样就可以非常方便地创建一个Java Bean对象了。
相关问题
Lombok @Builder 注解 @JsonFormat
`@Builder`和`@JsonFormat`注解是Lombok和Jackson库中常用的注解,它们分别用于简化Java代码的构造和JSON数据的序列化和反序列化。
`@Builder`注解可以帮助我们使用链式调用的方式来构造对象,从而减少代码的冗余,具体用法如下:
```java
@Builder
public class User {
private String name;
private int age;
}
```
在上面的代码中,我们使用`@Builder`注解来简化User类的构造,这样我们就可以使用链式调用的方式来构造User对象,如下所示:
```java
User user = User.builder()
.name("Tom")
.age(18)
.build();
```
`@JsonFormat`注解用于指定JSON数据的序列化和反序列化格式,具体用法如下:
```java
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
public Date getCreateTime() {
return createTime;
}
```
在上面的代码中,我们使用`@JsonFormat`注解来指定Date类型的createTime字段在序列化和反序列化时的格式,这里的格式为"yyyy-MM-dd HH:mm:ss"。
总的来说,`@Builder`和`@JsonFormat`注解都是非常有用的注解,它们可以帮助我们简化Java代码的构造和JSON数据的序列化和反序列化,提高我们的开发效率。
lombok @Builder 子用父属性
可以使用Lombok的@SuperBuilder注解来实现子类使用父类属性的功能。@SuperBuilder注解会自动生成一个带有父类属性的builder方法,子类可以直接调用该方法来初始化父类属性。
示例代码如下:
```java
import lombok.Builder;
import lombok.Getter;
import lombok.experimental.SuperBuilder;
@Getter
@SuperBuilder
public class Parent {
private String name;
}
@Getter
@Builder
public class Child extends Parent {
private int age;
}
// 使用示例
Child child = Child.builder()
.name("Tom")
.age(18)
.build();
```
在上面的示例中,Child类继承了Parent类,并使用了@SuperBuilder注解。在Child类中,我们只需要定义子类特有的属性,而父类的属性可以直接使用父类的builder方法来初始化。
阅读全文