`
javafenger
  • 浏览: 243353 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

Apache Jakarta Common Lang应用

阅读更多

       无论你在开发哪中 Java 应用程序,都免不了要写很多工具类/工具函数。你可知道,有很多现成的工具类可用,并且代码质量都很不错,不用你写,不用你调试,只要你发现。
  在 Apache Jakarta Common 中, Lang 这个 Java 工具包是所有 Apache Jakarta Common 项目中被使用最广泛的,几乎你所知道的名气比较大的软件里面都有用到它,包括 Tomcat, Weblogic, Websphere, Eclipse 等等。我们就从这个包开始介绍整个 common 项目。
  Lang 中最大的也是最常用的类是 StringUtils, StringUtils 最常用的函数是 isEmpty。这里举一个例子让你熟悉一下:

  String str = null;

  if(StringUtils.isEmpty(str)){

  }

  str = StringUtils.lowerCase(str);
  str = StringUtils.capitalize(str);
  str = StringUtils.swapCase(str);
  StringUtils.isNumeric(str);
  StringUtils.isAsciiPrintable(str);
  StringUtils.equalsIgnoreCase(str,"");

  其中,
  if(StringUtils.isEmpty(str)){

  }
  相当于
  if(str == null || str.length() == 0){

  }


  从以上代码可以看出这个工具类的特点:
  第一、这些函数都是静态函数,并且很少抛出异常,也很少抛出空指针异常。
  第二、这些函数的功能大多是增强标准 Java 中 java.lang.String 类的功能。

  其实,整个 lang 包的函数基本上都在增强 java.lang 包的功能。一个有趣的设计是,虽然 StringUtils 里面的函数都是静态函数,按照通常的做法,会把构造函数设计成 private, 但是不!StringUtils 的构造函数是 public 的。构造函数里面的注释写着 "no init"。这就有意思了,你可以 new 一个 StringUtils,虽然没有特别的好处,但是也没有特别的坏处;你可以写一个 StringUtils 的子类,虽然这也不太常见。这里面的思想似乎是,使用这个工具包的软件开发人员想怎么用就怎么用,做工具类的时候不用太多限制。
  至于不抛异常是因为现在很多人已经意识到 Java 中的异常不是什么好东西,如果不用异常也能写程序,为什么还要用异常?用了异常就要写很多 try catch,在很多场合,比如 jdbc driver,这已经证明了会使代码量增加并且代码的可读性变差。
  这里的思路会不会影响大家写程序的习惯呢?

  StringUtils 的函数很多,不一一列举。 Lang 中次重要的类要数 ArrayUtils,主要功能涉及到数组的比较、转换、拆分、合并、查找、增减、倒转等等操作。在 JDK 中,这类操作没有现成的函数。

  Lang 中工具类比较多,这里介绍几个主要的:
  ClassUtils getShortClassName,这个函数应该在 java.lang.Class 类中有的,我看到很多人自己写这个函数。getAllInterfaces,convertClassNamesToClasses,isAssignable,primitivesToWrappers,isInnerClass。
  NumberUtils 关于数字以及数字和字符串转换的类 stringToInt,toDouble,createNumber,isAllZeros, int compare(float lhs, float rhs), isNumber(String str),double min(double[] array)。
  RandomUtils 用于产生随机数的。
  DateFormatUtils 日期时间格式转换,以及本地时间和 UTC 时间转换。
  DateUtils 日期工具类。isSameDay,truncate,round,modify。

  基于反射机制的几个类:
  CompareToBuilder 比较,用在算法、排序、比较的地方。reflectionCompare,append。
  EqualsBuilder 通过反射机制比较。reflectionEquals 很多项目中用到。
  HashCodeBuilder 可以通过反射生成 hash code,很多算法的地方涉及到 hash code,但是并不是每个人都知道一种 hash code 的生成方法。
  ToStringBuilder 当你需要重载 toString 函数而不想写代码把当前类的所有成员信息列出来,可以用这个函数。

  其它的几个类我用得比较少:
  SerializationUtils Java 中得序列化比较奥妙,容易出错啊。
  SystemUtils 可以读取一些关于 jdk 信息,操作系统信息的工具类。




分享到:
评论

相关推荐

    Apache Jakarta Commons 使用手册

    介绍了Apache Jakarta Commons 项目下Java组件,如FileUpload, HttpClient, DBCP,BeanUtils,Logging,Lang, 以及 Collections,Codec等,是学习和使用Apache Jakarta Commons良好的参考使用手册。

    (最全)Apache Jakarta Commons 工具集及其API

    网上找不全,官网资源又太分散,自己动手,丰衣足食,这是我挨个下载的Apache jakarta commons,有windows与linux两版本(全都有源码),甚至分离出去的HttpClient都在其中,愿更多的人了解并使用Apache,这是一个...

    apache-jakarta旗下的所有开源项目jar文件

    apache-jakarta-commons-lang.jar apache-jakarta-commons-logging-adapters.jar apache-jakarta-commons-logging-api.jar apache-jakarta-commons-net.jar apache-jakarta-commons-net-1.4.1.jar apache-jakarta-...

    Jakarta commons\Apache Jakarta Commons Reusable Java Components.chm

    本书是一本介绍apache commons使用的电子书

    Jakarta Commons组件之Lang

    Jakarta Commons组件之commons-lang-2.3-src.zip

    Iverson book Apache Jakarta Commons[E文版]

    专门对Apache Jakarta Commons的项目的详细和使用方法

    Apache Jakarta Commons- Reusable Java Components.doc

    Apache Jakarta Commons- Reusable Java Components

    Jakarta Commons-lang API & Source Code-chm

    Jakarta Commons-lang API & Source Code Jakarta lang包API帮助文档,并带有源码

    httpclient需要的jar包,合订版(httclient.jar,commons-codec,commons-logging)

    HttpClient 用到了 Apache Jakarta common 下的子项目 logging,你可以从这个地址http://jakarta.apache.org/site/downloads/downloads_commons-logging.cgi下载到 common logging,从下载后的压缩包中取出 commons-...

    Commons-HTTPClient组件介绍与使用

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、...HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。

    HttpClient API CHM

    HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache...

    jakartaee8-starter-boilerplate:一个样板项目,用于在几秒钟内启动Jakarta EE 8应用程序

    是一个样板项目,可帮助您在几秒钟内引导新的Java EE 8 / Jakarta EE 8应用程序。 如果要探索基于JSF,JAX-RS和MVC的真实世界的Jakarta EE 8应用程序,请检查从该项目派生的以下项目。建立确保已安装最新的JDK 8和...

    apache-jakarta-oro.jar.zip

    Jakarta-ORO是最全面以及优化得最好的bai正则表达式API之一,duJakarta-ORO库以前叫做zhiOROMatcher,是由Daniel F. Savarese编写,后来他将其赠与daoJakarta Project。是面向JAVA的正则表达式库

    Jakarta common logging 简介 以及和其它日志系统结合使用

    NULL 博文链接:https://zhoujian1982318.iteye.com/blog/1703893

    commons-httpclient-3.1

    HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。本文首先介绍 HTTPClient,然后根据作者实际...

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码

    Java通过Apache提供的Commons Email工具类实现邮箱发送验证码功能,代码附详细注释文本,实现方法中附有验证码生成方法

    httpclient4.2.1

    HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache...

    httpclient-4.5所需所有jar包

    HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache...

    httpclient-4.5所需jar包

    HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache...

    httpclient-4.5所需jar包.rar

    HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache...

Global site tag (gtag.js) - Google Analytics