`
pf_miles
  • 浏览: 131788 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Jakarta Commons使用总结

    博客分类:
  • Java
阅读更多

浏览了一下《Jakarta Commons Cookbook》(Timothy M. O'Brien)。里面介绍了commons各子项目提供的各种实用类,大致浏览了一遍,做个总结,以后遇到相同的问题可以到commons里去寻找答案。

以下列出一些我认为比较有价值的功能,方便以后参考:

lang:

1)反射地生成hashcode、equals、toString方法。

2)反转数组

3)在数组中搜索指定项,并可设置起始位置

4)线程安全地使用日期格式化

5)验证方法参数的合法性

6)为程序计时

lang.StringUtils、WordUtils:

1)检查空字符串

2)省略字符串,可指定缩减位置

3)搜寻被嵌套的字符串,解析字符串

4)自定义要消除的字符,并执行操作

5)去掉串尾的换行符和回车符

6)反转字符串

7)以单词为单位反转字符串

8)设定一行的显示单词数量,且不破坏单词

9)检测字串内容(数字?字符?空格?混合?)

10)非海量文本中统计单词出现次数

11)计算字符串差别(差别字符,位置,编辑距离)

codec:12)计算字符串的soundex编码(语音编码)

beanUtils、propertyUtils

1)对某个bean的属性反射地访问、检查类型或设置或复制或克隆或检查可访问性,包括简单的、带下标的或Map型的属性

2)用Predicate验证bean

3)用map封装bean属性

4)动态创建bean

collections.comparators,beanUtils

1)将comparator链接为comparatorChain

2)以固定顺序比较(如“冠军”、“亚军”、“季军”)

3)使用predicate模拟电路的门逻辑

4)用transformer和closure封装对对象的操作,并可创建transformer链或closure链以及有条件的closure(commons functor项目中的UnaryFunction和UnaryProcedure对象可代替它们)

5)使用loopingIterator实现循环遍历

6)结合Predicate和FilterIterator筛选地遍历集合

7)使用Bag,一个维护对象数量或顺序的仿collection

8)使用MultiMap可将一个键对应到多个值上

9)使用BidiMap,根据值检索相应的键

10)使用LRUMap作为缓存

11)使用LazyMap直到检索时才加载相应的项

除了以上列出的功能外,commons还提供Digester包和BetWixt包来实现xml文件和java对象之间的映射和序列化功能;

CLI项目用来解析命令行参数;

Configuration项目用来读取property文件形式或xml形式的程序配置文件;

Math项目用来进行一些科学计算,涉及分数、复数运算、线性方程求解、求相关性等;

FreeMarker和Velocity提供两种可选的模板技术;

IO项目提供文件操作和流操作的一些便利,过滤文件等;

ORO项目专门处理正则表达式;

Net项目实现简单的FTP和mail客户端;

HttpClient项目处理对Http协议的编程;

Slide处理WebDEV协议的编程;

JXPath实现了xPath查询,用于查询xml节点和对象图等;

Lucene,一个高效的文本搜索实现。

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics