Java开发用到的工具类
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 修饰的