ClassUtils就這1張圖,必備(五)

開心一笑

【向美術(shù)教師交作業(yè)時,一位學(xué)生之交了一張白紙.
老師問:"畫呢?"
學(xué)生答:"這呀!"他指著白紙說.
老師:"你畫的是什么?"
學(xué)生:"牛吃草."
老師:"草呢?"
學(xué)生:"被牛吃光了."
老師:"那牛呢?"
學(xué)生:"草都吃光了,牛還站在那里干什么??"】

提出問題

Lang3中的ClassUtils類如何使用???

解決問題

勵志圖片
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)載,點贊,頂,歡迎留下寶貴的意見,多謝支持!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容