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自带的方法,的确要省心一些。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值