`

commons-lang

阅读更多
使用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自带的方法,的确要省心一些。
分享到:
评论

相关推荐

    commons-lang3-3.12.0-API文档-中文版.zip

    赠送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...

    commons-lang3-3.4-API文档-中文版.zip

    赠送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文档:...

    commons-lang3-3.7-API文档-中文版.zip

    赠送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文档:...

    commons-lang-2.4-API文档-中文版.zip

    赠送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-...

    commons-lang3-3.12.0-API文档-中英对照版.zip

    赠送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...

    commons-lang3-3.3.2-API文档-中文版.zip

    赠送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文档...

    commons-lang3-3.9-API文档-中文版.zip

    赠送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文档:...

    commons-lang3-3.10-API文档-中文版.zip

    赠送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文档:...

    commons-lang3-3.10-API文档-中英对照版.zip

    赠送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文档:...

    commons-lang3-3.5-API文档-中文版.zip

    赠送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.rar

    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 ...

    commons-lang-2.6-API文档-中英对照版.zip

    赠送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-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-lang3-3.4开发工具 commons-...

    commons-lang-2.6.jar包

    commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包commons-lang-2.6.jar包加源码

    apache commons 常用jar包 commons-validator commons-transaction commons-lang等

    jar包大小:239KB commons-lang-2.3.jar jar包大小:237KB commons-lang-2.2.jar jar包大小:202KB commons-lang-2.1.jar jar包大小:165KB commons-lang-2.0.jar jar包大小:278KB commons-jxpath-1.2.jar jar包大小:129...

    commons-lang3-3.7-API文档-中英对照版.zip

    赠送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文档:...

    commons-lang-2.6-API文档-中文版.zip

    赠送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文档-中文(简体)版.zip ...

    commons-lang-2.4-API文档-中英对照版.zip

    赠送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-...

    commons-lang3资源包

    apatch commons-lang3 资源包,包含commons-lang3-3.8.1.jar包等资源

    commons-lang3-3.12.0.jar

    commons-lang3-3.12.0.jar

Global site tag (gtag.js) - Google Analytics