其他分享
首页 > 其他分享> > lombok 实验性注解之 @SuperBuilder

lombok 实验性注解之 @SuperBuilder

作者:互联网

最全的 lombok 注解详情(随着版本不定时更新)

一、注解介绍

@Builder 并不支持对基类成员属性的构造,而 @SuperBuilder 就是为了解决这个问题而产生的,算是 @Builder 的升级版

二、属性介绍

三、实战演练

@Builder

public class 许潇晗 {
    private Integer age;
    
    private String name;
}

@Builder
public class 陈瑶 extends 许潇晗 {
	public static void main(String[] args) {
		陈瑶.builder().name("陈瑶").build(); // 这个时候是不能对基类的 name 属性赋值
	}
}

@SuperBuilder

@SuperBuilder(builderMethodName = "builder", buildMethodName = "build", toBuilder = true, setterPrefix = "k")
public class 许潇晗 {
    private Integer age;
    private String name;
}

@SuperBuilder
public class 陈瑶 extends 许潇晗 {
	public static void main(String[] args) {
		陈瑶.builder().kName("陈瑶").build();
	}
}

四、温馨提示

一、基类和派生类不能同时存在 @Builder
二、如果基类使用了 @SuperBuilder,那么派生类必须存在 @SuperBuilder 或者写出参数为:基类Builder<?, ?> 的构造方法
三、@SuperBuilder 并不像 @Builder 功能那么多,比如非 final 字段设置默认值,@SuperBuilder 并不支持

标签:name,实验性,Builder,陈瑶,SuperBuilder,基类,lombok,public
来源: https://blog.csdn.net/qq_39249094/article/details/121552488