開心一笑
【向美術(shù)教師交作業(yè)時,一位學(xué)生之交了一張白紙.
老師問:"畫呢?"
學(xué)生答:"這呀!"他指著白紙說.
老師:"你畫的是什么?"
學(xué)生:"牛吃草."
老師:"草呢?"
學(xué)生:"被牛吃光了."
老師:"那牛呢?"
學(xué)生:"草都吃光了,牛還站在那里干什么??"】
提出問題
Lang3中的ClassUtils類如何使用???
解決問題


獲取包名
getPackageName(Class<?> cls)
@Test
public void testGetPackageName(){
//獲取包名
String packName = ClassUtils.getPackageName(String.class);
System.out.println(packName); // = java.lang
String packName2 = ClassUtils.getPackageName(Beans.class);
System.out.println(packName2); // = java.beans
//為空,默認返回第二個參數(shù)的值
String packName3 = ClassUtils.getPackageName(null,"the object is null");
System.out.println(packName3); // = the object is null
//傳入?yún)?shù)為字符串
String packName4 = ClassUtils.getPackageName("java.lang.String");
System.out.println(packName4); // = java.lang
//獲取規(guī)范名
String packName5 = ClassUtils.getPackageCanonicalName(String.class);
System.out.println(packName5); // = java.lang
}
獲取類名
getShortCanonicalName(Class<?> cls)
getShortClassName(Class<?> cls)
getSimpleName(Class<?> cls)
@Test
public void testGetClassName(){
//獲取simpleName
String simpleName1 = ClassUtils.getSimpleName(String.class);
System.out.println(simpleName1); // = String
//獲取simpleName
String simpleName2 = ClassUtils.getSimpleName(null,"simpleName is null");
System.out.println(simpleName2); // = simpleName is null
//獲取canonicalName
String canonicalName = ClassUtils.getShortCanonicalName(String.class);
System.out.println(canonicalName); // = String
//獲取className
String className = ClassUtils.getShortClassName(String.class);
System.out.println(className); // = String
//3者的區(qū)別:對于內(nèi)部類,如內(nèi)部類,區(qū)別就顯示出來類
//其他情況區(qū)別不大
//獲取simpleName
String simpleName3 = ClassUtils.getSimpleName(Map.Entry.class);
System.out.println(simpleName3); // = Entry
//獲取canonicalName
String canonicalName2 = ClassUtils.getShortCanonicalName(Map.Entry.class);
System.out.println(canonicalName2); // = Map.Entry
//獲取className
String className2 = ClassUtils.getShortClassName(Map.Entry.class);
System.out.println(className2); // = Map.Entry
}
判斷是否為轉(zhuǎn)型
isAssignable(Class<?> cls, Class<?> toClass)等等
@Test
public void testIsAssignable(){
System.out.println("判斷是否可以轉(zhuǎn)型.");
System.out.println(ClassUtils.isAssignable(Date.class, Object.class)); //= true
System.out.println(ClassUtils.isAssignable(Object.class, Date.class)); //=false
}
判斷是否為內(nèi)部類
isInnerClass(Class<?> cls)
@Test
public void testIsInnerClass(){
System.out.println(ClassUtils.isInnerClass(Entry.class)); // = ture
System.out.println(ClassUtils.isInnerClass(Object.class)); //= false
}
判讀是否為基礎(chǔ)類型或者包裝類型
isPrimitiveOrWrapper(Class<?> type)
isPrimitiveWrapper(Class<?> type)
@Test
public void testIsPrimitiveWrapper(){
// wrapper類有(Boolean, Byte, Character, Short, Integer, Long, Double, Float).
System.out.println(ClassUtils.isPrimitiveWrapper(Integer.class)); // = ture
System.out.println(ClassUtils.isPrimitiveWrapper(Object.class)); // = false
System.out.println(ClassUtils.isPrimitiveWrapper(String.class)); // = false
System.out.println(ClassUtils.isPrimitiveWrapper(int.class)); // = false
System.out.println(ClassUtils.isPrimitiveOrWrapper(Integer.class)); // = ture
System.out.println(ClassUtils.isPrimitiveOrWrapper(Object.class)); // = false
System.out.println(ClassUtils.isPrimitiveOrWrapper(String.class)); // = false
System.out.println(ClassUtils.isPrimitiveOrWrapper(int.class)); // = true
}
基礎(chǔ)類型和包裝類型轉(zhuǎn)換
wrapperToPrimitive(Class<?> cls)
@Test
public void testWrapperToPrimitive(){
System.out.println(ClassUtils.wrapperToPrimitive(Integer.class));// = int
}
獲取類名和class類互轉(zhuǎn)
convertClassesToClassNames(List<Class<?>> classes)
convertClassNamesToClasses(List<String> classNames)
對象轉(zhuǎn)Class對象
toClass(Object... array)
@Test
public void testToClass(){
//類轉(zhuǎn)化為class對象
Class[] classAry = ClassUtils.toClass(new String(),new Object());
System.out.println(ArrayUtils.toString(classAry));
// = {class java.lang.String,class java.lang.Object}
}
獲取縮略名
getAbbreviatedName(Class<?> cls,int len)
getAbbreviatedName(String className,int len)
@Test
public void testGetAbbreviatedName(){
//獲取類的縮略名稱
String abbreviatedName1 = ClassUtils.getAbbreviatedName(String.class, 5);
String abbreviatedName2 = ClassUtils.getAbbreviatedName(String.class, 10);
String abbreviatedName3 = ClassUtils.getAbbreviatedName(String.class, 3);
String abbreviatedName4 = ClassUtils.getAbbreviatedName(String.class, 20);
System.out.println(abbreviatedName1);
System.out.println(abbreviatedName2);
System.out.println(abbreviatedName3);
System.out.println(abbreviatedName4);
}
獲得所有實現(xiàn)的接口
getAllInterfaces(Class<?> cls)
@Test
public void testGetAllInterfaces(){
//獲得所有實現(xiàn)的接口
List<Class<?>> classAry = ClassUtils.getAllInterfaces(String.class);
System.out.println(ArrayUtils.toString(classAry));
}
獲取所有父類
getAllSuperclasses(Class<?> cls)
@Test
public void testGetAllSuperclasses(){
//獲得所有的父類
List<Class<?>> classArray = ClassUtils.getAllSuperclasses(String.class);
System.out.println(ArrayUtils.toString(classArray));
//[class java.lang.Object]
}
獲取父類層級
hierarchy(Class<?> type)
@Test
public void testHierarchy(){
Iterator<Class<?>> myIterator = ClassUtils.hierarchy(ArrayList.class).iterator();
while(myIterator.hasNext()){
System.out.println(myIterator.next());
}
}
結(jié)果:
class java.util.ArrayList
class java.util.AbstractList
class java.util.AbstractCollection
class java.lang.Object
讀書感悟
來自《麥田守望者》
- 記住該記住的,忘記該忘記的。改變能改變的,接受不能改變的。
- 長大是人必經(jīng)的潰爛。
- 一個不成熟男子的標志是他愿意為某種事業(yè)英勇地死去,一個成熟男子的標志是他愿意為某種事業(yè)卑賤地活著。
- 我們確實活得艱難,一要承受種種外部的壓力,更要面對自己內(nèi)心的困惑。在苦苦掙扎中,如果有人向你投以理解的目光,你會感到一種生命的暖意,或許僅有短暫的一瞥,就足以使我感奮不已。
- 你一定得認識到自己想往哪個方向發(fā)展,然后一定要對準那個方向出發(fā),要馬上。你再也浪費不起多一秒的時間了,你浪費不起。
- 一個不成熟的理想主義者會為理想悲壯的死去,而一個成熟的理想主義者則愿意為理想茍且的活著
- 這類事情老讓我笑疼肚皮,我老是在跟人說“見到你真高興”,其實我見到他可一點也不高興。你要是想在這世界上活下去,就得說這類話。
其他
如果有帶給你一絲絲小快樂,就讓快樂繼續(xù)傳遞下去,歡迎轉(zhuǎn)載,點贊,頂,歡迎留下寶貴的意見,多謝支持!