| 类 | 说明 |
|---|---|
| ElKit |
EL 表达式语言求值工具类
1:不带参示例
Integer value = ElKit.eval("1 + 2 * 3");
2:带参示例
Kv data = Kv.of("a", 2).set("b", 3);
Integer value = ElKit.eval("1 + a * b", data);
|
| ElKit.InnerEvalDirective | |
| HashKit | |
| JavaKeyword |
JavaKeyword.
|
| Kv |
Kv (Key Value)
Example:
Kv para = Kv.of("id", 123);
User user = user.findFirst(getSqlPara("find", para));
|
| Okv |
Okv (Ordered Key Value)
Okv 与 Kv 的唯一区别在于 Okv 继承自 LinkedHashMap,而 Kv 继承自 HashMap
所以对 Okv 中的数据进行迭代输出的次序与数据插入的先后次序一致
Example:
Okv para = Okv.of("id", 123);
User user = user.findFirst(getSqlPara("find", para));
|
| Prop |
Prop.
|
| PropKit |
PropKit.
|
| ReflectKit |
反射工具类
|
| StrKit |
StrKit.
|
| SyncWriteMap<K,V> |
SyncWriteMap 同步写 HashMap
创建原因是 HashMap扩容时,遇到并发修改可能造成 100% CPU 占用
SyncWriteMap 拥有 HashMap 的性能,但不保障并发访问的线程安全
只用于读多写少且不用保障线程安全的场景
例如 MethodKit 中用于缓存 MethodInfo 的 cache,被写入的数据
不用保障是单例,读取之后会做 null 值判断
ActionMapping 中的 HashMap 是系统启动时在独立线程内初始化的,
不存在并发写,只存在并发读的情况,所以仍然可以使用 HashMap
|
| TimeKit |
TimeKit 用于简化 JDK 8 新增的时间 API
新旧日期转换通过桥梁 Instant 进行,转成 LocalDate、LocalTime 需要先转成 LocalDateTime:
新转旧:LocalDateTime.atZone(ZoneId).toInstant() -> Instant -> Date.from(Instant)
旧转新:Date.toInstant() -> Instant -> LocalDateTime.ofInstant(Instant, ZoneId)
经测试,SimpleDateFormat 比 DateTimeFormatter 对 pattern 的支持更好
对于同样的 pattern 值 "yyyy-MM-dd HH:mm:ss",前者可以转换 "2020-06-9 12:13:19"
后者却不支持,原因是 pattern 的 dd 位置只有数字 9,必须要是两位数字才能支持
所以:建议优先使用转换结果为 Date 的 parse 方法,使用 SimpleDateFormat 来转换
|
| TypeKit |
TypeKit
|
Copyright © 2024. All rights reserved.