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