Apache-common-lang

1. 技術(shù)目標(biāo)

  • 目標(biāo)01:StringUtils工具類
  • 目標(biāo)02:ArrayUtils工具類
  • 目標(biāo)03:ObjectUtils工具類
  • 目標(biāo)04:StringEscapeUtils工具類
  • 目標(biāo)04:反射相關(guān)
  • 目標(biāo)05:其他不常用的

2. 技術(shù)介紹

apache-common是開源第三方Java組件中最常用的系列,其中包括了大量jar包义黎。其中apache-common-lang是最核心與基礎(chǔ)的jar包毫玖,lang代表language介衔,意為對Java語言的補充。例如其中一個重要的原則就是null兼容,因為Java中對null的處理并不優(yōu)雅围小,程序員一不小心就會拋出NullPointerException(這一點在同為JVM語言的Groovy中就大大不同)锨阿。所以在寫程序的時候盡量使用apache-common組件提供的工具代碼。
正因為它是基礎(chǔ)馍驯,將它命名為『云南白藥』阁危,意為行走江湖必備。

3. 環(huán)境配置

3.1 基礎(chǔ)環(huán)境
  • common-lang.jar包

4. 技術(shù)詳解

4.1 ArrayUtils工具類
int[] a = { 1, 5, 6, 8 };
// 01.數(shù)組轉(zhuǎn)換成字符串
String string = ArrayUtils.toString(a);
// 02.在一個數(shù)組中查找某個元素是否存在
System.out.println("intArray contains '8'?" + ArrayUtils.contains(a, 9));
System.out.println("intArray index of '8'?" + ArrayUtils.indexOf(a, 9));
System.out.println("intArray last index of '8'?" + ArrayUtils.contains(a, 9));
// 03.原始類型轉(zhuǎn)換成包裝類
Integer[] object = ArrayUtils.toObject(a);
System.out.println(object[2]);
4.2 StringUtils工具類
4.2.1 語義化判斷
// 判斷是否為null和””
StringUtils.isEmpty("");
// 在前者基礎(chǔ)上汰瘫,”“字符串也返回true
StringUtils.isBlank("");
StringUtils.isBlank(null);
// 和前者相反狂打,在代碼中使用更加語義化,容易理解
StringUtils.isNotBlank("");
// 不要再使用Integer.parseInt()方法并在異常攔截塊中做判斷了
StringUtils.isNumeric("");
// 兩者是否相等混弥,省略了null判斷的過程
StringUtils.equals("", "");
// 判斷請求的后綴是否是.html結(jié)尾
StringUtils.endsWithIgnoreCase(targetUrl, ".html")
StringUtils.substringBetween(result, "\"openid\":\"", "\"}");
4.2.2 日志打印
//實現(xiàn)=======的效果趴乡,用于打日志
StringUtils.repeat("=", 50);
//實現(xiàn) %%%%%%%%Customised Header%%%%%%%%效果
String msg = StringUtils.center(" Customised Header ", 50, "%");
4.2.3 String與數(shù)組轉(zhuǎn)化
//將一個array中的String連接起來,用分隔符隔開
StringUtils.join(array, ",");
//相反蝗拿,把用分隔符隔開的string轉(zhuǎn)為數(shù)組
StringUtils.split(string, ",");
4.2.4 代碼的可讀性
//加強代碼可讀性晾捏,減少if判斷
StringUtils.defaultString(String str, String defaultValue)
//縮寫一個長string,若不足則不干任何事哀托,否則截斷并在末尾添加”…”
StringUtils.abbreviate(str,5)
4.3 ObjectUtils工具類
//可以方便的打印各種嵌套復(fù)雜類惦辛,集合類中所有的值,不必自己去實現(xiàn)toString()方法仓手,可以用來在日志中輸出胖齐。
ObjectUtils.toString();

//增強代碼可讀性玻淑,如果obj為null返回defaultObj,這一點在common-lang包中一脈相承
ObjectUtils.defaultIfNull(obj, defaultObj);

//是否相等呀伙,等價于obj.equals(obj2)补履,省略了null判斷
ObjectUtils.equals(obj, obj2);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市剿另,隨后出現(xiàn)的幾起案子箫锤,更是在濱河造成了極大的恐慌,老刑警劉巖雨女,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谚攒,死亡現(xiàn)場離奇詭異,居然都是意外死亡氛堕,警方通過查閱死者的電腦和手機五鲫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岔擂,“玉大人位喂,你說我怎么就攤上這事÷伊椋” “怎么了塑崖?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長痛倚。 經(jīng)常有香客問我规婆,道長,這世上最難降的妖魔是什么蝉稳? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任抒蚜,我火速辦了婚禮,結(jié)果婚禮上耘戚,老公的妹妹穿的比我還像新娘嗡髓。我一直安慰自己,他們只是感情好收津,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布饿这。 她就那樣靜靜地躺著,像睡著了一般撞秋。 火紅的嫁衣襯著肌膚如雪长捧。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天吻贿,我揣著相機與錄音串结,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛肌割,可吹牛的內(nèi)容都是我干的赵抢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼声功,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了宠叼?” 一聲冷哼從身側(cè)響起先巴,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎冒冬,沒想到半個月后伸蚯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡简烤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年剂邮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片横侦。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡挥萌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出枉侧,到底是詐尸還是另有隱情引瀑,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布榨馁,位于F島的核電站憨栽,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏翼虫。R本人自食惡果不足惜屑柔,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望珍剑。 院中可真熱鬧掸宛,春花似錦、人聲如沸招拙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽迫像。三九已至劈愚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間闻妓,已是汗流浹背菌羽。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留由缆,地道東北人注祖。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓猾蒂,卻偏偏與公主長得像,于是被迫代替她去往敵國和親是晨。 傳聞我的和親對象是個殘疾皇子肚菠,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 使用第三方包的目的: 讓代碼有更好的可讀性,比如 不必重復(fù)寫基本的判斷邏輯罩缴,讓自己關(guān)注真正的業(yè)務(wù) apache-c...
    納達(dá)丶無忌閱讀 2,198評論 0 16
  • /Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home...
    光劍書架上的書閱讀 3,884評論 2 8
  • mean to add the formatted="false" attribute?.[ 46% 47325/...
    ProZoom閱讀 2,699評論 0 3
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理蚊逢,服務(wù)發(fā)現(xiàn),斷路器箫章,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 這篇文章的初稿檬寂,寫于今年3月3日终抽。當(dāng)時絕不是不知道,推韓國電影有危險桶至,否則也不會隱而不發(fā)昼伴,只是看過這個電影之后,喜...
    驚_鴻閱讀 574評論 14 4