不要用魔法值!!!
发表于|更新于
|浏览量:
我来到这个世界为的是看太阳和蔚蓝色的田野。——巴尔蒙特
《阿里Java手册》中第一条编程规约下的第二条常量定义里的第一条

例如这里

我们使用了魔法值
我们改成常量则为

像是字符编码此类都有对应的常量或者枚举等
例如java.nio.charset.StandardCharsets
相关推荐
2021-01-19
removeIf
礼貌是最容易做到的事,也是最珍贵的东西。—— 冈察尔 Java中我们可能使用Stream的filter从List去过滤一些数据 但如果我们想要更高的效率,或者我们修改源数据,就需要用到List的removeif了 下面是一个简单的测试 12345678910// 生成从0到20的数字,过滤掉奇数 List<Integer> intList = Stream.iterate(0, e -> ++e).limit(20).collect(Collectors.toList()); long filterStart = System.nanoTime(); intList.stream().filter(a -> a % 2 == 0).collect(Collectors.toList()); long filterEnd = System.nanoTime(); System.out.println("filter执行了" + ((filterEnd - filte...
2022-01-22
Collectors.toMap的对null友好实现
令她反感的,远不是世界的丑陋,而是这个世界所戴的漂亮面具。——《不能承受的生命之轻》 我们在使用toMap时如果遇到null元素,经常会导致我们发生npe 很不方便 于是我给hutool提交了一个PR 完美解决了这个问题 使用方式: 升级到hutool-5.7.20 然后使用CollectorUtil 12Map<String, Integer> collect = Arrays.asList("ruben", "a chao", "vampire", "RUBEN", "VAMPIRE", null).stream().collect(CollectorUtil.toMap(Function.identity(), String::length, (l, r) -> l));System.out.println(collect); 即可
2023-01-28
spring-batch批量处理
没有一个人能真正理解另一个人的烦恼或喜悦——舒伯特 按照文档:https://spring.io/guides/gs/batch-processing/ 新建一个项目 勾选Spring Batch以及HyperSQL Database 点击create 在resources下面新建我们的数据文件 sample-data.csv 12345Jill,DoeJoe,DoeJustin,DoeJane,DoeJohn,Doe schema-all.sql 1234567DROP TABLE people IF EXISTS;CREATE TABLE people ( person_id BIGINT IDENTITY NOT NULL PRIMARY KEY, first_name VARCHAR(20), last_name VARCHAR(20)); 然后新建一个Person业务类 12345678910111213141516171819202122232425262728293031323334353637package com.example....
2024-05-04
未来或将用Markdown写JavaDoc
当囊空如洗时才开始节约的话,那就为时太晚了。——塞内加 提案链接:JEP 467: Markdown Documentation Comments 1995 年的 HTML 写 JavaDoc 到现在已经快过时啦,于是 Jonathan Gibbons 提议用 Markdown 写 JavaDoc。目前这个提议在“Proposed to Target”状态,根据社区反响,这个提议很大概率能在 Java SE 23 版本中发布。 新的文档注释将使用 /// 而不是传统的 /** ... */。这样做的好处是: 避免了在文档注释中使用传统注释(如 /*...*/)可能引发的问题。 消除了使用星号的传统注释可能带来的 Markdown 语法冲突。 下面的 JavaDoc 和 Markdown 版本的文档注释对比。 JavaDoc 版本: 1234567/** * Returns a hash code value for the object. This method is * supported for the benefit of hash tables such as t...
2024-06-05
HuTool日期解析问题
多说话的人不是长于做事的人。——佚名 收到一个issue DateUtil.parse()无法解析日期: · Issue #3608 · dromara/hutool · GitHub 版本情况JDK版本: openjdk_8 and jdk17hutool版本: 5.2.7(请确保最新尝试是否还有问题) 问题描述(包括截图)“1940-06-01 00:00:00” ~ “1940-06-01 00:59:00”,这个时间范围是无法使用DateUtil.parse(dateTime, DatePattern.NORM_DATETIME_PATTERN)解析的 复现代码 123456@Testpublic void t17() { String dateTime = "1940-06-01 00:00:00"; DateTime parse = DateUtil.parse(dateTime, DatePattern.NORM_DATETIME_PATTERN); Console.log(parse);&...
2023-01-11
byte-buddy实现mybatis-plus动态mapper
掌握了教育,就掌握了国家——法国谚语 构造动态mapper部分代码如下: 123456789101112131415public static void buildMapper(Configuration configuration, Class<?> entityClass) { if (!(configuration instanceof MybatisConfiguration)) { throw new IllegalArgumentException("configuration must be MybatisConfiguration"); } ENTITY_MAPPER_CLASS_CACHE.computeIfAbsent(entityClass, k -> { Class<?> dynamicMapper = new ByteBuddy() .makeInterface(TypeDescript...

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