文档章节

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

secondriver
 secondriver
发布于 2015/09/17 09:27
字数 678
阅读 12
收藏 0

 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


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

本文出自 “野马红尘” 博客,谢绝转载!

© 著作权归作者所有

secondriver
粉丝 10
博文 229
码字总数 233821
作品 0
广州
程序员
私信 提问
使用eclipse给项目 maven install 报错

[INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for com.qyl:bbw_new:war:0.0.1-SNAPSHOT [WARNING] 'build.plu......

村口加瓦佬
2015/12/09
1K
1
Commons-lang3提供的StopWatch执行时间监视器

Commons-lang3提供的StopWatch执行时间监视器, spring也提供了同样功能的工具 前言 我们如果要统计一段代码的执行时间:我们的办法是 倘若我们要展示成秒、甚至分钟,还得我们自己处理 可能到...

独钓渔
06/26
37
0
使用Apache commons-text进行占位符替换

Apache commons-lang3包中的 StrSubstitutor可以将字符串中的变量替换为指定的值 从commons-lang3-3.6.jar版本起 org.apache.commons.lang3.text.StrSubstitutor已经过时,文档上建议用commo...

简言不简单
2017/12/15
0
0
学习StringUtils的问题:capitalize()

学习apache 的commons-lang3-3.6.jar的源码,从最常用到的StringUtils开始,发现一个非常奇怪的方法。当然也有别的代码的疑惑,但是这个最突出。以上的一段代码居然只实现首字母如过有大写,...

冷基
2017/07/09
2.3K
2
java转换json出现的错误

缺少相应jar包都会有异常,根据异常找jar包导入...... 这里我说下lang包,因为这个包我找了好半天: 我用的是: commons-lang3-3.1.jar 出现异常: java.lang.NoClassDefFoundError: org/ap...

aijfanta
2016/07/15
21
0

没有更多内容

加载失败,请刷新页面

加载更多

数据库表与表之间的一对一、一对多、多对多关系

表1 foreign key 表2 多对一:表 1 的多条记录对应表 2 的一条记录 利用foreign key的原理我们可以制作两张表的多对多,一对一关系 多对多: 表1的多条记录可以对应表2的一条记录 表2的多条记...

Garphy
33分钟前
6
0
MySQL 表崩溃修复

MySQL日志报错 2019-10-19 13:41:51 19916 [ERROR] /usr/local/mysql/bin/mysqld: Table './initread_hss/user_info' is marked as crashed and should be repaired2019-10-19 13:41:51 1......

雁南飞丶
43分钟前
5
0
Error和Exception

1.Error类和Exception类都是继承Throwable类 2.Error(错误)是系统中的错误,程序员是不能改变的和处理的,是在程序编译时出现的错误,只能通过修改程序才能修正。一般是指与虚拟机相关的问...

大瑞清_liurq
今天
4
0
8086汇编基础 start 程序入口标签的示例

    IDE : Masm for Windows 集成实验环境 2015     OS : Windows 10 x64 typesetting : Markdown    blog : my.oschina.net/zhichengjiu    gitee : gitee.com/zhichengjiu   ......

志成就
今天
4
0
uni app 零基础小白到项目实战2

<template> <scroll-view v-for="(card, index) in list" :key="index"> <view v-for =(item, itemIndex) in card"> {{item.value}}</view> </scroll-view></template> GraceUi va......

达达前端小酒馆
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部