此文是系列文章第二篇,前几篇请点击链接查看
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版本为例做说明。
以下为整体包结构:
1 | arduino复制代码org.apache.commons.lang3 |
下面只列举其中常用的加以说明,其余感兴趣的可以自行翻阅源码研究。
- 日期相关
在Java8之前,日期只提供了java.util.Date类和java.util.Calendar类,说实话这些API并不是很好用,而且也存在线程安全的问题,所以Java8推出了新的日期API。如果你还在用旧的日期API,可以使用DateUtils和DateFormatUtils工具类。
1. 字符串转日期
1 | Java复制代码final String strDate = "2021-07-04 11:11:11"; |
2. 日期转字符串
1 | Java复制代码final Date date = new Date(); |
3. 日期计算
1 | Java复制代码final Date date = new Date(); |
- 字符串相关
字符串是Java中最常用的类型,相关的工具类也可以说是最常用的,下面直接看例子
1. 字符串判空
1 | Java复制代码String str = ""; |
相关方法:
1 | Java复制代码// isEmpty取反 |
2. 字符串去空格
1 | Java复制代码// 去除两端空格,不需要判断null |
3. 字符串分割
1 | Java复制代码/* |
4. 取子字符串
1 | Java复制代码// 获得"ab.cc.txt"中最后一个.之前的字符串 |
5. 其他
1 | Java复制代码// 首字母大写 |
6. 随机字符串
1 | Java复制代码// 随机生成长度为5的字符串 |
- 反射相关
反射是Java中非要重要的特性,原生的反射API代码冗长,Lang包中反射相关的工具类可以很方便的实现反向相关功能,下面看例子
1. 属性操作
1 | Java复制代码public class ReflectDemo { |
注:方法名含Declared的只会在当前类实例上寻找,不包含Declared的在当前类上找不到则会递归向父类上一直查找。
相关方法:
1 | Java复制代码public class ReflectDemo { |
2. 获取注解方法
1 | Java复制代码// 获取被Test注解标识的方法 |
3. 方法调用
1 | Java复制代码private static void testStaticMethod(String param1) {} |
其他还有ClassUtils,ConstructorUtils,TypeUtils等不是很常用,有需求的可以现翻看类的源码。
- 系统相关
主要是获取操作系统和JVM一些信息,下面看例子
1 | Java复制代码// 判断操作系统类型 |
- 总结
除了以上介绍的工具类外,还有其他不是很常用的就不多做介绍了。感兴趣的可以自行翻阅源码研究。
后续章节我将继续给大家介绍commons中其他好用的工具类库,期待你的关注。
本文转载自: 掘金