免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Apache Jakarta Common Lang 介紹

Apache Jakarta Common Lang 介紹

  無(wú)論你在開(kāi)發(fā)哪中 Java 應(yīng)用程序,都免不了要寫(xiě)很多工具類(lèi)/工具函數(shù)。你可知道,有很多現(xiàn)成的工具類(lèi)可用,并且代碼質(zhì)量都很不錯(cuò),不用你寫(xiě),不用你調(diào)試,只要你發(fā)現(xiàn)。
  在 Apache Jakarta Common 中, Lang 這個(gè) Java 工具包是所有 Apache Jakarta Common 項(xiàng)目中被使用最廣泛的,幾乎你所知道的名氣比較大的軟件里面都有用到它,包括 Tomcat, Weblogic, Websphere, Eclipse 等等。我們就從這個(gè)包開(kāi)始介紹整個(gè) common 項(xiàng)目。
  Lang 中最大的也是最常用的類(lèi)是 StringUtils, StringUtils 最常用的函數(shù)是 isEmpty。這里舉一個(gè)例子讓你熟悉一下:

  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)){

  }
  相當(dāng)于
  if(str == null || str.length() == 0){

  }


  從以上代碼可以看出這個(gè)工具類(lèi)的特點(diǎn):
  第一、這些函數(shù)都是靜態(tài)函數(shù),并且很少拋出異常,也很少拋出控制針異常。
  第二、這些函數(shù)的功能大多是增強(qiáng)標(biāo)準(zhǔn) Java 中 java.lang.String 類(lèi)的功能。

  其實(shí),整個(gè) lang 包的函數(shù)基本上都在增強(qiáng) java.lang 包的功能。一個(gè)有趣的設(shè)計(jì)是,雖然 StringUtils 里面的函數(shù)都是靜態(tài)函數(shù),按照通常的做法,會(huì)把構(gòu)造函數(shù)設(shè)計(jì)成 private, 但是不!StringUtils 的構(gòu)造函數(shù)是 public 的。構(gòu)造函數(shù)里面的注釋寫(xiě)著 "no init"。這就有意思了,你可以 new 一個(gè) StringUtils,雖然沒(méi)有特別的好處,但是也沒(méi)有特別的壞處;你可以寫(xiě)一個(gè) StringUtils 的子類(lèi),雖然這也不太常見(jiàn)。這里面的思想似乎是,使用這個(gè)工具包的軟件開(kāi)發(fā)人員想怎么用就怎么用,做工具類(lèi)的時(shí)候不用太多限制。
  至于不拋異常是因?yàn)楝F(xiàn)在很多人已經(jīng)意識(shí)到 Java 中的異常不是什么好東西,如果不用異常也能寫(xiě)程序,為什么還要用異常?用了異常就要寫(xiě)很多 try catch,在很多場(chǎng)合,比如 jdbc driver,這已經(jīng)證明了會(huì)使代碼量增加并且代碼的可讀性變差。
  這里的思路會(huì)不會(huì)影響大家寫(xiě)程序的習(xí)慣呢?

  StringUtils 的函數(shù)很多,不一一列舉。 Lang 中次重要的類(lèi)要數(shù) ArrayUtils,主要功能涉及到數(shù)組的比較、轉(zhuǎn)換、拆分、合并、查找、增減、倒轉(zhuǎn)等等操作。在 JDK 中,這類(lèi)操作沒(méi)有現(xiàn)成的函數(shù)。

  Lang 中工具類(lèi)比較多,這里介紹幾個(gè)主要的:
  ClassUtils getShortClassName,這個(gè)函數(shù)應(yīng)該在 java.lang.Class 類(lèi)中有的,我看到很多人自己寫(xiě)這個(gè)函數(shù)。getAllInterfaces,convertClassNamesToClasses,isAssignable,primitivesToWrappers,isInnerClass。
  NumberUtils 關(guān)于數(shù)字以及數(shù)字和字符串轉(zhuǎn)換的類(lèi) stringToInt,toDouble,createNumber,isAllZeros, int compare(float lhs, float rhs), isNumber(String str),double min(double[] array)。
  RandomUtils 用于產(chǎn)生隨機(jī)數(shù)的。
  DateFormatUtils 日期時(shí)間格式轉(zhuǎn)換,以及本地時(shí)間和 UTC 時(shí)間轉(zhuǎn)換。
  DateUtils 日期工具類(lèi)。isSameDay,truncate,round,modify。

  基于反射機(jī)制的幾個(gè)類(lèi):
  CompareToBuilder 比較,用在算法、排序、比較的地方。reflectionCompare,append。
  EqualsBuilder 通過(guò)反射機(jī)制比較。reflectionEquals 很多項(xiàng)目中用到。
  HashCodeBuilder 可以通過(guò)反射生成 hash code,很多算法的地方涉及到 hash code,但是并不是每個(gè)人都知道一種 hash code 的生成方法。
  ToStringBuilder 當(dāng)你需要重載 toString 函數(shù)而不想寫(xiě)代碼把當(dāng)前類(lèi)的所有成員信息列出來(lái),可以用這個(gè)函數(shù)。

  其它的幾個(gè)類(lèi)我用得比較少:
  SerializationUtils Java 中得序列化比較奧妙,容易出錯(cuò)啊。
  SystemUtils 可以讀取一些關(guān)于 jdk 信息,操作系統(tǒng)信息的工具類(lèi)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
【開(kāi)發(fā)常識(shí)】這個(gè)問(wèn)題,直接導(dǎo)致年終獎(jiǎng)沒(méi)了……(慘兮兮)
排名Top 16的Java實(shí)用類(lèi)庫(kù)
推薦 16 個(gè)超級(jí)實(shí)用的 Java 工具類(lèi)
commons-lang
如何在Java中填充字符串?
Java中不容拒絕的一種優(yōu)雅的寫(xiě)法
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服