读源码Apache-commons-lang3-3.1(零)

 Apache的Jakarta commons工程下具有一系列公共基础类。例如Lang,IO,Pool,BeanUtils等等。

 Apache的Jakarta commons工程项目列表路径:http://commons.apache.org


  Commons基础类包基本上是基于JDK API开发而来,依赖微小,可重用性是Jakarta commons的灵魂所在。

  Lang组件主要是一些工具类,涉及到数组工具类,字符串工具类,字符工具类,数学方面,时间日期工具类,异常,事件等工具类。

  阅读Apache-Commons-Lang包下常用的数组,字符串,字符工具类的实现,能在实际开发中避免过多的写相关字符串处理,数组处理的通用方法。很多时候,已经重复做了好多本不需要做的工作,在一个项目中字符串,数组的处理是相当频繁的。


  得益于亲身体会,截取字符串,替换字符串,字符串字符排序,查找各式各样的操作,每次到要针对一个问题去处理,反反复复编写着相似的代码,一直有些反感,这一点我们并没有采用拿来主义,我也看到好多项目中有一些成为utils或者tools的子包,里面放置这一些字符串处理,数据格式转换等工具类,事实上,这些工作已经有人做了,而且做很很好的封装,组织。

  Lang组件中的工具类的方法是静态方法,直接使用,命名清晰明了,能够很好的解决问题。有时候,拿来主义是必须了,Lang包下的工具类实现并非有什么高超的编码技巧,实现方式,其有效的组织和归纳一些列工具类型的方法,具备高可重用性是其价值的体现。


  通过阅读Commons-Lang下的几个常用,频繁涉及的工具类,总结一点就是工具类的组织,归纳,公共特性是其核心价值。

 

 下面是四篇关于Commons-Lang下几个工具类的说明:

   CharUtils CharSequenceUtils:

   http://aiilive.blog.51cto.com/1925756/1282066

   ObjectUtils Range:

   http://aiilive.blog.51cto.com/1925756/1282061

   ArrayUtils :

   http://aiilive.blog.51cto.com/1925756/1282062

   StringUtils, RandomStringUtils:

   http://aiilive.blog.51cto.com/blog/1925756/1282146


   一次尝试阅读开源组件的源代码,感受其组织代码,归纳特性,实现方法的原理,能够宏观的看公共类设计的方法,方式。另外,熟悉开源组件代码,能够将其投入到实际的工作,从而提高的生产效率,减轻编码负担。这将是软件可重新为我带来的一个切身可以享受到的好处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Commons Lang这一组API也是提供一些基础的、通用的操作和处理,如自动生成toString()的结果、自动实现hashCode()和equals()方法、数组操作、枚举、日期和时间的处理等等。 这一组API的所有包名都以org.apache.commons.lang开头,共有如下8个包: org.apache.commons.lang org.apache.commons.lang.builder org.apache.commons.lang.enum org.apache.commons.lang.enums org.apache.commons.lang.exception org.apache.commons.lang.math org.apache.commons.lang.mutable org.apache.commons.lang.time 其中的lang.enum已不建议使用,替代它的是紧随其后的lang.enums包。 lang包主要是一些可以高度重用的Util类;lang.builder包包含了一组用于产生每个Java类中都常使用到的toString()、 hashCode()、equals()、compareTo()等等方法的构造器;lang.enums包顾名思义用于处理枚 举;lang.exception包用于处理Java标准API中的exception,为1.4之前版本提供Nested Exception功能;lang.math包用于处理数字;lang.mutable用于包装值型变量;lang.time包提供处理日期和时间的功 能。 org.apache.commons.lang包,这个包提供了一些有用的包含static方法的Util类。除了6个Exception类和2个已经deprecated的数字类之外,commons.lang包共包含了17个实用的类: ArrayUtils – 用于对数组的操作,如添加、查找、删除、子数组、倒序、元素类型转换等; BitField – 用于操作位元,提供了一些方便而安全的方法; BooleanUtils – 用于操作和转换boolean或者Boolean及相应的数组; CharEncoding – 包含了Java环境支持的字符编码,提供是否支持某种编码的判断; CharRange – 用于设定字符范围并做相应检查; CharSet – 用于设定一组字符作为范围并做相应检查; CharSetUtils – 用于操作CharSet; CharUtils – 用于操作char值和Character对象; ClassUtils – 用于对Java类的操作,不使用反射; ObjectUtils – 用于操作Java对象,提供null安全的访问和其他一些功能; RandomStringUtils – 用于生成随机的字符串; SerializationUtils – 用于处理对象序列化,提供比一般Java序列化更高级的处理能力; StringEscapeUtils – 用于正确处理转义字符,产生正确的Java、JavaScript、HTML、XML和SQL代码; StringUtils – 处理String的核心类,提供了相当多的功能; SystemUtils – 在java.lang.System基础上提供更方便的访问,如用户路径、Java版本、时区、操作系统等判断; Validate – 提供验证的操作,有点类似assert断言; WordUtils – 用于处理单词大小写、换行等。 。。。。。。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值