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

相关推荐
2021-10-11
springboot项目打包后页面访问不到
不会宽容别人的人,是不配受到别人的宽容的。但是谁能说自己是不需要宽容的呢?——屠格涅夫 今天项目打包上线,有个页面死活找不到,报错500提示模板不存在 但在本地idea运行后又能访问到 首先我先找了下Controller和页面,粗略看了下,好像没啥问题 生成的target目录下也有 我本来还怀疑是nginx配置有问题,查看了下配置文件,并没有/admin的路径重写 然后我使用mvn package打成jar包后,即便是本地java -jar运行也是找不到该模板。。。 我再次逐句逐句查看代码 发现了问题所在: 这个地方和其他的Controller中跳转页面写的不一样,多了个杠!!! 最坑的就是,在idea中运行的项目能正确访问,到了线上就访问不到了,最后去掉这个杠就好了。。。
2022-03-25
you might not need peek
正因为世界本身是平庸的,所以你也才平庸。——《寻羊冒险记》 上代码 12345678910111213141516171819202122232425262728293031323334353637383940414243444546import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Objects;import java.util.function.Function;import java.util.stream.Collectors;import java.util.stream.Stream;class Scratch { public static void main(String[] args) { class User { private String name; public String getName(...
2024-05-03
spring提供的SQL工具类执行SQL脚本
方向是比速度更重要的追求。——白岩松 这里主要是用到了org.springframework.jdbc.datasource.init.ScriptUtils#executeSqlScript(java.sql.Connection, org.springframework.core.io.Resource)方法 例如 123456 @BeforeAllstatic void setup(@Autowired DataSource dataSource) throws Exception { JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); assertNotNull(jdbcTemplate.getDataSource()); ScriptUtils.executeSqlScript(jdbcTemplate.getDataSource().getConnection(), new ClassPathResource("init.sql"));}...
2021-07-19
新版Optional
我们每一做一件事都应该既小心谨慎,又充满信心。——爱比克泰德 首先关于Optional的博客我已经写过好几篇了 Optional进行优雅非空判断 Optional再扩展 Optional没有peek函数?自己写一个 在Java9中更新了Optional的三个函数 第一个:将Optional中的值转换为Stream,如果值不存在,则返回空的Stream 12345678910111213141516171819202122/** * If a value is present, returns a sequential {@link Stream} containing * only that value, otherwise returns an empty {@code Stream}. * * @apiNote * This method can be used to transform a {@code Stream} of optional * elements to a {@code Stream...
2021-01-12
Zero date value prohibited
世界上最大的谎言就是你不行。——《垫底辣妹》 报Zero date value prohibited错的时候 在连接mysql的URL上加入&zeroDateTimeBehavior=convertToNull即可 原因是因为我们存入数据库中的date类型字段有为0的数据 加了此参数,即可让mysql处理的时候,把为0的日期当作null处理
2021-04-03
mybatis-plus逻辑删除简单实现
1 人生不是一支短短的烛炬,而是一只由我们暂时拿着的火把;我们一要把它燃得十分光明辉煌,然后交给下一代的人们。——(英)萧伯纳 mybatis-plus配置逻辑删除 我们可以在配置文件中配置 12345mybatis-plus: global-config: db-config: logic-delete-value: 1 # 逻辑已删除值(默认为 1) logic-not-delete-value: 0 # 逻辑未删除值(默认为 0) 然后在pojo的删除字段属性加一个@TableLogic注解 然后我们启动测试类 12345@Testpublic void deleteTest() { List<Film> films = filmMapper.selectList(Wrappers.lambdaQuery(Film.builder().build()).last("LIMIT 1")); films.stream().findFirst().map(Film::getFilmId)...

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