Apache Commons Lang简介
Apache Commons Lang是对java.lang的扩展,基本上是commons中最常用的工具包。
目前Lang包有两个commons-lang3和commons-lang。
lang最新版本是2.6,最低要求Java1.2以上,目前官方已不在维护。lang3目前最新版本是3.12.0,最低要求Java8以上。相对于lang来说完全支持Java8的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。
Java8以上的用户推荐使用lang3代替lang,下面我们主要以lang3 - 3.12.0版本为例做说明。
- arch # 提供类以使用os.arch系统属性的值。
- builder #帮助创建一致的equals(Object)、toString()、hashCode()和compareTo(Object)方法。
- compare #提供类以使用可比较接口和比较接口。
- concurrent #为多线程编程提供支持类。
- event #提供一些有用的基于事件的实用程序。
- exception #提供异常功能。
- math #为数学类扩展java.math。
- mutable #为基元值和对象提供类型化的可变包装器。
- reflect #提供反射java.lang.reflect API的常见高级用法。
- text #提供用于处理和操作文本的类,部分用作java.text的扩展。
- text.translate # 用于从一组较小的构造块创建文本转换例程的API。
- time # 提供处理日期和持续时间的类和方法。
- tuple #元组类,从版本3.0中的对类开始。
maven坐标
1 |
|
下面只列举其中常用的加以说明,其余感兴趣的可以自行翻阅源码研究。
日期相关
在Java8之前,日期只提供了java.util.Date类和java.util.Calendar类,说实话这些API并不是很好用,而且也存在线程安全的问题,所以Java8推出了新的日期API。如果你还在用旧的日期API,可以使用DateUtils和DateFormatUtils工具类。
字符串转日期
1 |
|
日期转字符串
1 |
|
日期计算
1 |
|
字符串相关
字符串是Java中最常用的类型,相关的工具类也可以说是最常用的,下面直接看例子
字符串判空
1 |
|
相关方法:
1 |
|
字符串去空格
1 |
|
字符串分割
1 |
|
取子字符串
1 |
|
其他
1 |
|
随机字符串
1 |
|
反射相关
反射是Java中非要重要的特性,原生的反射API代码冗长,Lang包中反射相关的工具类可以很方便的实现反向相关功能,下面看例子
属性操作
1 |
|
注:方法名含Declared的只会在当前类实例上寻找,不包含Declared的在当前类上找不到则会递归向父类上一直查找。
相关方法:
1 |
|
获取注解方法
1 |
|
方法调用
1 |
|
其他还有ClassUtils,ConstructorUtils,TypeUtils等不是很常用,有需求的可以现翻看类的源码。
系统相关
主要是获取操作系统和JVM一些信息,下面看例子
1 |
|
最后
除了以上介绍的工具类外,还有其他不是很常用的就不多做介绍了。感兴趣的可以自行翻阅源码研究。