使用commons-lang的基本原则上就是要明折哪些类新版本的JDK中已经有相似的功能,而哪些类还不能由JDK替代,虽然本着尽量使用新版API的原则,但的确有些类是不能由新版API替代的。其中有一些类很有用处,下面将重点介绍本人认为很有用而且新版API不能替代的工具类。
Validate :这个类可能是最简单的了,但是这种思想是很值得学习的。在写方法的时候经常会遇见验证对象是否为空的问题,这样可以增加程序的可调试性。如:
public static void escapeHtml(Writer writer, String string) throws IOException {
if (writer == null ) {
throw new IllegalArgumentException ("The Writer must not be null.");
}
if (string == null) {
return;
}
.........................
大多数方法头部都应该包含基本的验证。如果使用Validate类,程序的结构将更加的优雅:
public static void escapeHtml(Writer writer, String string) throws IOException {
Validate.notNull(writer,"The Writer must not be null.");
if (string == null) {
return;
}
.........................
虽然Validate类本身很简单,但通过封装,这个类有相当大的实用价值。
StringEscapeUtils:这个类的主要作用就是对java,XML,javascript,HTML与XML的特殊字符进行转码。如果自己手动实现这些功能的确有些费劲,但是在很多情况下,为了系统更加安全与健壮,不得不对它们进行转码处理,否则会出现一些意想不到的事。比如SQL注入攻击就是这么来的。
这个类主要有两种风格的方法escapeXXX与unescapeXXX方法,分别对对象进行转码与解码。
这个类帮助程序员省了很多事,如果一开始的时候并没注意这些问题的话,在遭遇特殊字符的时候系统很可能会出现问题,如果不借助这些工具类,手动去实现会非常的麻烦。因此这个类也是很有价值的。
还有一个比较常用的类,就是字符串的工具类StringUtils,这个类方法非常的多,整个源代码也有近六千行,几乎包括了所有的字符串常用功能。使用时也要仔细参看文档,大多数时候,commons的处理方式会比JDK内部处理方式更加全面周到,特别是对null的处理。如
String有length方法,然而StringUtils也有length方法,看似一样,唯一的区别在于它们对null的处理不一样,前者会抛出一个异常,而后者会返回0。
大多数常用功能都可以在StringUtils中找到,如果遇见关于字符串的处理,首先想到的就应该是StringUtils类,像
str == null || str.length() == 0;
这样的代码完全可以通过StringUtils.isEmpty(str)来取代,程序会显得更加的优雅。
ObjectUtils:这个类比较简单,有一些方法也很实用,因为这些方法本身非常的简单,很多时候程序员在开发程序的时候就忽略它们的重用性。
个人比较喜欢那个
defaultIfNull(java.lang.Object object, java.lang.Object defaultValue)
记得原来经常用
if(s == null)
s = ""
其它这些都是可重用的规则,还有max,min,equal,toString,hashCode等方法,它们都对null经过友好的处理,可以放心使用,比起JDK自带的方法,的确要省心一些。
分享到:
相关推荐
赠送jar包:commons-lang3-3.12.0.jar; 赠送原API文档:commons-lang3-3.12.0-javadoc.jar; 赠送源代码:commons-lang3-3.12.0-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.12.0.pom; 包含翻译后的API...
赠送jar包:commons-lang-2.4.jar; 赠送原API文档:commons-lang-2.4-javadoc.jar; 赠送源代码:commons-lang-2.4-sources.jar; 赠送Maven依赖信息文件:commons-lang-2.4.pom; 包含翻译后的API文档:commons-...
赠送jar包:commons-lang3-3.12.0.jar; 赠送原API文档:commons-lang3-3.12.0-javadoc.jar; 赠送源代码:commons-lang3-3.12.0-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.12.0.pom; 包含翻译后的API...
赠送jar包:commons-lang3-3.7.jar; 赠送原API文档:commons-lang3-3.7-javadoc.jar; 赠送源代码:commons-lang3-3.7-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.7.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.3.2.jar; 赠送原API文档:commons-lang3-3.3.2-javadoc.jar; 赠送源代码:commons-lang3-3.3.2-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.3.2.pom; 包含翻译后的API文档...
赠送jar包:commons-lang3-3.4.jar; 赠送原API文档:commons-lang3-3.4-javadoc.jar; 赠送源代码:commons-lang3-3.4-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.4.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.9.jar; 赠送原API文档:commons-lang3-3.9-javadoc.jar; 赠送源代码:commons-lang3-3.9-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.9.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.10.jar; 赠送原API文档:commons-lang3-3.10-javadoc.jar; 赠送源代码:commons-lang3-3.10-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.10.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.10.jar; 赠送原API文档:commons-lang3-3.10-javadoc.jar; 赠送源代码:commons-lang3-3.10-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.10.pom; 包含翻译后的API文档:...
赠送jar包:commons-lang3-3.5.jar; 赠送原API文档:commons-lang3-3.5-javadoc.jar; 赠送源代码:commons-lang3-3.5-sources.jar; 赠送Maven依赖信息文件:commons-lang3-3.5.pom; 包含翻译后的API文档:...
这个"commons-lang-2.4.rar"压缩包包含了两个子文件,分别是"commons-lang-2.4-bin.zip"和"commons-lang-2.4-src.zip"。 "commons-lang-2.4-bin.zip"文件是编译后的二进制版本,包含了commons-lang库的JAR文件。这...
本资源包含了两个不同版本的Lang包:`commons-lang3-3.7.jar` 和 `commons-lang-2.6.jar`。这两个版本分别代表了Lang项目在不同时间点的发展状态,它们各自具有不同的特性和功能,适用于不同需求的项目。 `commons-...
commons-lang-1.0-b1.jar commons-lang-1.0.1.jar commons-lang-2.0.jar commons-lang-2.1-javadoc.jar commons-lang-2.1-sources.jar commons-lang-2.1.jar commons-lang-2.3.jar commons-lang-2.4-sources.jar ...
Apache Commons Lang 是一个 Java 类库,它为 Java SDK 增加了大量有用的实用工具类,弥补了标准库中的一些不足。"commons-lang3-3.0-bin.zip" 是 Apache Commons Lang 的第 3.0 版本的二进制分发包。这个压缩包包含...
commons-lang.jar、Apache Commons包中的一个,包含了一些数据类型工具类,是java.lang.*的扩展。必须使用的jar包。 Jar文件包含的类: META-INF/MANIFEST.MFMETA-INF/LICENSE.txtMETA-INF/NOTICE.txtorg.apache....
赠送jar包:commons-lang-2.6.jar; 赠送原API文档:commons-lang-2.6-javadoc.jar; 赠送源代码:commons-lang-2.6-sources.jar; 包含翻译后的API文档:commons-lang-2.6-javadoc-API文档-中文(简体)-英语-对照...
commons-lang.jar是日常编程中必不可少的一个jar包,在日常java编程中,经常会使用到commons-lang.jar包,还没有准备commons-lang.jar包的用户可以前来下载使用,本站不仅为大家提供了commons-lang3-3.1.jar下载地址
"commons-lang-2.6.jar" 是Apache Commons Lang项目的版本2.6的Java类库,这个库提供了大量的实用工具类,极大地丰富了Java标准库的功能。Apache Commons Lang是Apache软件基金会开发的一个开源项目,旨在为Java开发...
开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-lang3-3.4开发工具 commons-...
Apache Commons Lang是Java编程语言中的一个实用工具库,它提供了许多增强和补充Java核心类库功能的方法。在本例中,我们关注的是`commons-lang3-3.12.0.jar`包,这是Apache Commons Lang项目的最新版本。这个库包含...