Hutool
| 官网 | http://hutool.cn/ |
|---|---|
| API 参考 | http://hutool.mydoc.io/?t=812 |
| GitHub | https://github.com/looly/hutool |
一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件:
- 布隆过滤
- 缓存
- 克隆接口
- 类型转换
- 日期处理
- 数据库ORM(基于ActiveRecord思想)
- 基于DFA有限自动机的多个关键字查找
- HTTP客户端
- IO和文件
- 有用的一些数据结构
- 日志
- 反射代理类的简化(AOP切面实现)
- Setting(一种扩展Properties的配置文件)
- System(JVM和系统信息等)
- WatchService的封装(文件变动监控)
- XXXUtil各种有用的工具类
经常使用的工具类及方法:
StrUtil.isEmpty("ABC"); DateUtil.now(); BeanUtil.copyProperties(source,target); BeanUtil.beanToMap(source,target); HttpUtil
Project Lombok
| 官网 | https://projectlombok.org/ |
|---|---|
| API 参考 | https://projectlombok.org/features/index.html |
| GitHub | https://github.com/rzwitserloot/lombok |
使用注解 annotation 来减少代码重复,例如 getter、setter、not null检查、生成 Builder 等。下面有一些 Project Lombok 的 feature:
val - 自动解析变量的返回类型,并且该变量是 final 类,如
var foo = example.get(0);//=> final String foo = example.get(0);@NonNull- 自动 check 非空并抛异常;@Cleanup- 自动关闭资源,调用 close() 方法;@Getter / @Setter- 不用再写public int getFoo() {return foo;}了;@ToString- 不用再开启 Debugger 来看某个值了,它能自动生成一个 toString 方法;@EqualsAndHashCode- 更方便地比较两个对象是否相等;@NoArgsConstructor, @RequiredArgsConstructor and @AllArgsConstructor- 自动按顺序生成构造函数;@Data- 同时包括 @ToString, @EqualsAndHashCode,
@Getter对所有变量,@Setter对所有非 final 变量,
@RequiredArgsConstructor
常用的
@Data 在类上声明此注解,会自动生成Getter,Setter,equals,hashCode方法 @NonNull 用于参数,检查该参数是否为空 @SneakyThrows 用于方法,有异常自动捕获并抛出 @Log 相当于 声明日志对象 @NoArgsConstructor 无参构造方法 @AllArgsConstructor 全参构造方法 val 自动解析变量的返回类型,并且该变量是 final 修饰的