kotlin NaN坑
发脾气的人比被发脾气的对象所受的损失更大——霍姆斯 今天发现一个坑,在代码里尝试toBigDecimal抛出了NumberFormatException debug一看,发现值为NaN 在kotlin里,这样的代码会导致NaN 1234val nan = 0.0 / 0.0nan.toBigDecimal() // java.lang.NumberFormatExceptionjava.lang.Double.isNaN(nan) // true 最重要的是NaN,不会通过 安全调用操作符?. 的判断,因为其属于有值 所以上述代码可以改为 12val nan = 0.0 / 0.0nan.takeUnless { it.isNaN() }?.toBigDecimal() // null
jackson kt module
儿童在学校的相似,是强制的结果。一旦毕业,强制随即结束。——爱尔维修 我们在使用jackson时,如果项目还包含kotlin,则会有警告 此时需要引入依赖 12345<dependency> <groupId>com.fasterxml.jackson.module</groupId> <artifactId>jackson-module-kotlin</artifactId> <version>2.11.3</version></dependency> 并添加module 1234567891011121314151617181920212223242526272829303132333435363738394041424344import com.fasterxml.jackson.module.kotlin.KotlinModule;/** * web配置类 * * @author <achao1441470436@gmail.com> * ...
gitee代码评审建议
对自己没犯过的错误,人们是不太会引起警觉的——博斯威尔 链接:https://gitee.com/VampireAchao/stream-query/pulls/255 上图: 如何实现? 可以使用suggestion代码块 123```suggestionwrapper = Sf.mayColl(new HashSet(dataList)).mayLet(values -> wrapper.in(keyFunction, values)).orGet(() -> Database.notActive(wrapper));```
display:block小技巧
成功之道,在于你为获得成功所做出的积极努力,而不在于预先就衡量这种成功的价值——哈里特 分享一个小技巧 display:block 可以将style标签可见 例如: 12345678910111213<body> <style contenteditable style="display: block;white-space: pre"> * { transition: all 0.2s } html { background: #ff00ff; font-size: 16px } </style></body> 因为我们这里给了contenteditable 所以可以直接在页面上编辑 试试吧 * { transition: all 0.2s } html { ...
designMode
保持友谊的最好办法是不出卖朋友——米兹涅尔 我们可以使用 1document.designMode = 'on' 来开启页面的编辑模式 例如:
exeBuilder
爱惜衣裳要从新的时候起,爱惜名誉要从幼小的时候起——普希金 有些时候我们需要将java应用程序打成exe文件执行,此时可以使用 https://gitee.com/qsyan/ExeBuilder
r2dbc指定时区问题
政治能把一个人突然变老——巴尔扎克 今天看见这个警告 我的配置项如下: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import cn.hutool.core.util.StrUtil;import com.alibaba.druid.util.JdbcUtils;import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;import io.r2dbc.spi.ConnectionFactories;import io.r2dbc.spi.ConnectionFactory;import io.r2dbc.spi.ConnectionFactoryOption...
Fastjson姿势技巧集合
一个人在年轻的时候,没有什么能把他搞垮——奥尼尔 分享一个Fastjson姿势技巧集合: https://github.com/safe6Sec/Fastjson FastjsonFastjson姿势技巧集合 说明 本项目涉及的一些姿势和payload是从之前的随手记的笔记直接粘进来的,很多找不到出处了所以来源未贴出来,望师傅们见谅。 高版本的很多细节还有待更新。 浅蓝Kcon议题内容由@su18师傅整理 各版本复现payload来自@kezibei师傅,我原项目基础上加了maven依赖,做了一点代码修改。 各版本payload复现https://github.com/safe6Sec/ShiroAndFastJson 判断是否用了fastjson鉴别fastjsonDNSLOG 1{"@type":"java.net.InetSocketAddress"{"address":,"val":"dnslog.com"}} 1...
PersistJobDataAfterExecution注解
心地善良的人、富于幻想的人比冷酷残忍的人更容易聚合——约翰逊 quartz之前我们也聊过了,今天说下这个注解org.quartz.PersistJobDataAfterExecution 一般和DisallowConcurrentExecution搭配使用 PersistJobDataAfterExecution表示Job执行结束后更新JobDataMap DisallowConcurrentExecution表示不允许并发执行 12345678910111213141516171819202122232425262728293031@Slf4j@DisallowConcurrentExecution@PersistJobDataAfterExecutionpublic class SettlementJob implements Job { /** * <p> * Called by the <code>{@link Scheduler}</code> when a <code&g...
jackson时区问题
万两黄金容易得,知心一个也难求——曹雪芹 今天发现日期数据返回后日期错乱 怀疑是时区问题,果然改了全局jackson序列化配置就好了 12ObjectMapper objectMapper = new ObjectMapper();objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8")); 完整代码: 12345678910111213141516171819202122232425262728293031323334353637383940/** * web配置类 * * @author <achao1441470436@gmail.com> * @since 2021/5/18 0018 14:52 */@Configuration@EnableWebMvcpublic class WebConfig implements WebMvcConfigurer { /** * @param converters 转换器 * @author <a...
