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 修饰的


你可能感兴趣的:(Java开发用到的工具类)