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-03-01
mybatis一对多查询
想认识人,解剖自己就好——杜克罗 官方文档 书接上文:mybatis流式查询 分享mybatis的结果映射配置的一对多查询方式: 123456789101112131415161718<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ruben.mapper.UserMapper"> <resultMap id="userInfo" type="com.ruben.pojo.po.UserInfo"> <collection property="...
2022-07-25
科大讯飞NLP黑白名单上传
“你喜欢一个人,就像喜欢富士山。你可以看到它,但是不能搬走它。你有什么方法可以移动一座富士山呢?回答是,你自己走过去。爱情也是如此,逛过就已经足够。”——林夕 介绍:对接科大讯飞NLP 贴代码,其中一些常量在上面有: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758package org.example;import cn.hutool.core.codec.Base64;import cn.hutool.core.lang.Console;import cn.hutool.core.lang.Opt;import cn.hutool.core.map.MapUtil;import cn.hutool.core.text.CharSequenceUtil;import cn.hutool.http.HttpUtil;import cn.hutool.json.JSONObject;import cn.hutool...
2021-03-22
mybatis-plus代码生成器
一个能思想的人,才真是一个力量无边的人。——巴尔扎克 你是否对每天重复单表CRUD,改mapper.xml字段已经感到厌烦? 那么快点来整mybatis-plus代码生成器吧! 首先到官网 并且从github拉下来最新的代码~ 没错,最新的! https://github.com/baomidou/generator 当然,除了github,我们也可以选择gitee https://gitee.com/baomidou/generator 然后用尽你的全力去点clone——哦!中文是克隆 然后你可以喝杯水 虽然代码拉下来了,但我们还需要使用gradle加载依赖~ 此时我们可以看看README.md 这告诉了我们如何使用 我们按照说明新建一个启动类(当然如果你想新建一个测试类也可以,这不重要~) 如果你是新建的启动类,那么你需要去build.gradle里找到这些dependencies 注意,这里有两个build.gradle,我们需要选择这一个 然后把testImplementation改为implementation 你也可以改你需要的那个,例如mysql...
2021-07-02
redisson实现分布式锁
性格左右命运,气度影响格局。——余世雅博士 代码如下 123456789101112131415161718192021222324252627282930313233 public static int EXPIRE_SECONDS = 5 * 60; @Resource private RedissonClient redissonClient; /** * 加redisson分布式锁 * * @param lockName 锁名 * @param supplier 调用方法 * @return T * @author <achao1441470436@gmail.com> * @since 2021/7/2 17:42 */ @Override @Transactional(rollbackFor = Throwable.class, isolation = Isolation.READ_UNCOMMITTED, propagation = Propagation.REQUIRED) p...
2024-08-29
jps、jstack查看java堆栈信息
宿命论是那些缺乏意志力的弱者的借口。——罗曼·罗兰 jps查看进程信息命令如下: 12345678Github-Id-VampireAchao:shenyu achao$ jps -l27312 jdk.jcmd/sun.tools.jps.Jps88929 27268 org.jetbrains.jps.cmdline.Launcher27269 org.apache.shenyu.examples.http.ShenyuTestSwaggerApplication19815 com.intellij.idea.Main27175 org.jetbrains.idea.maven.server.RemoteMavenServer3624237 org.sonarsource.sonarlint.core.backend.cli.SonarLintServerCli 然后用jstack查看堆栈信息: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484...
2024-07-11
Mybatis在Mapper上加注解关闭一级缓存
正如自然忌讳真空一样,人类是讨厌平等的。——《我是猫》 MyBatis的一级缓存是SqlSession级别的缓存,默认是开启的。如果你想在查询时禁用一级缓存,可以使用@Options注解并将flushCache属性设置为true: 123456789101112import org.apache.ibatis.annotations.Options;import org.apache.ibatis.annotations.Select;import org.apache.ibatis.annotations.Mapper;@Mapperpublic interface MyMapper { @Select("SELECT * FROM my_table WHERE id = #{id}") @Options(flushCache = Options.FlushCachePolicy.TRUE) MyEntity selectById(int id);} 这样每次执行查询时,都会刷新缓存。

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