lombok建造者模式支持父类
发表于|更新于
|浏览量:
精力充沛的青春,是不怎么容易灭亡的。——卡罗萨
使用@SuperBuilder注解代替原本的@Builder就可以了
如果对建造者模式不太了解的,可以看我以往写的博客:
https://VampireAchao.github.io/2020/11/08/%E5%BB%BA%E9%80%A0%E8%80%85%E6%A8%A1%E5%BC%8F/
这里做个对比,加之前:



加之后:


可以看到子类开始的建造者模式成功访问到父类属性,不过最终获取到的还是父类
如果想要最终获取到的还是子类,可以在父类也使用@SuperBuilder
不过父类的父类也要有@SuperBuilder

相关推荐
2023-10-06
camel+minio实现预签名URL上传
充实的思想不在于言语的美丽,而在于它引以自豪的内容。——莎士比亚 Camel文档: Minio :: Apache Camel Minio文档: https://min.io/docs/minio/linux/developers/java/API.html#getPresignedObjectUrl Amazon文档: 使用预签名 URL - Amazon Simple Storage Service 然后核心配置如下: 123// For the generate Pre signed Url routefrom(direct("createUploadLink")) .to(minio(CamelConst.BUCKET_TEMPLATE).operation(MinioOperations.createUploadLink)); 其余配置部分参考 springboot+camel对接minio上传下载 接下来就是使用: 123456789101112131415161718import cn.hutool.core.io.IoUt...
2023-03-22
mybatis的call-setters-on-nulls
一个结婚以后的朋友,无论如何不是从前的朋友了,男人的灵魂现在羼入了一些女人的灵魂。——罗曼·罗兰 我们在使用org.apache.ibatis.session.SqlSession#selectMap(java.lang.String, java.lang.String) 时会遇到字段值为null的时候,这个时候返回的map会丢失掉对应的entry节点 只需要配置mybatis.configuration.call-setters-on-nulls为true即可保留对应的entry
2023-01-21
easy-trans
我参加了他的葬礼,在一个工作日的上午。——布里特·彼得《造船厂:脚手架装配作业》 分享一个框架easy-trans gitee:https://gitee.com/dromara/easy_trans 插件文档:http://easy-trans.fhs-opensource.top/ easy trans适用于5种场景1 我有一个id,但是我需要给客户展示他的title/name 但是我又不想自己手动做表关联查询2 我有一个字典码 sex 和 一个字典值0 我希望能翻译成 男 给客户展示。3 我有一组user id 比如 1,2,3 我希望能展示成 张三,李四,王五 给客户4 我有一个枚举,枚举里有一个title字段,我想给前端展示title的值 给客户5 我有一个唯一键(比如手机号,身份证号码,但是非其他表id字段),但是我需要给客户展示他的title/name 但是我又不想自己手动做表关联查询 食用步骤技术经理/架构 需要做的事情1 、先把maven 引用加上(注意,阿里云Maven仓库因为阿里本身软件升级所以暂时无法同步中央仓库的新发布...
2021-07-10
mybatis-plus防止全表更新与删除
宁要好梨一个,不要烂梨一筐。积极肯干和忠心耿耿的人即使只有两三个,也比十个朝气沉沉的人强。——列宁 我们可以如下配置 12345678910111213@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL); // 阻止全表更新与删除 BlockAttackInnerInterceptor blockAttackInnerInterceptor = new BlockAttackInnerInterceptor(); // 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false paginatio...
2023-03-19
关联更新封装(三)
太如意的生活便是平凡的生活,太容易获得的东西,便不是贵重的东西。——茅盾 今天是另外一种类型的关联更新封装 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768public static <T, K extends Comparable<? super K> & Serializable, S> BaseDbBO<S> saveSub(SubBO<T, K, S> bo) { val subIds = Steam.of(bo.getMainList()) .flat(data -> Steam.of(bo.getSubIdGetters()).map(f -> f.apply(data))) .nonNull().toList(); val su...
2023-06-15
wrapper支持typeHandler
错误经不起失败,但真理却不怕失败。——泰戈尔 相关pr: https://gitee.com/dromara/stream-query/pulls/340 大致使用方式 123456789101112131415161718192021222324@Testvoid selectTest() { Name name = new Name(); name.setUsername("VampireAchao"); name.setNickname("阿超"); UserInfoWithJsonName user = new UserInfoWithJsonName(); user.setName(name); Database.saveFewSql(Lists.of(user)); Database.updateFewSql(Lists.of(user)); LambdaQueryWrapper<UserInfoWithJsonName> wrapper = QueryCondition.qu...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog