天天看點

100個Java工具類之39:類工具類Apache之ClassUtils

作者:一名小小程式員

本文主要講述:類工具類Apache之org.apache.commons.lang3.ClassUtils

ClassUtils主要是用來擷取類的相關資訊,這裡分享幾個主要用法,都很簡單,大家可以作為了解。

一、擷取包名

//入參是class
String packageName = ClassUtils.getPackageName(String.class);
輸出:java.lang
//入參是字元串
String packageName = ClassUtils.getPackageName("java.lang.String");
輸出:java.lang
//擷取包名,當包名為空時,給預設值
String packageName = ClassUtils.getPackageName(null,"java.lang");
輸出:java.lang           

二、擷取類名

//擷取類名,包含包路徑
String name = ClassUtils.getName(String.class);
輸出:java.lang.String
//擷取類名,不包含包路徑
String shortClassName = ClassUtils.getShortClassName(String.class);
輸出:String           
100個Java工具類之39:類工具類Apache之ClassUtils

三、判斷是否為内部類

boolean isInnerClass = ClassUtils.isInnerClass(Map.Entry.class);
輸出:true
boolean isInnerClass = ClassUtils.isInnerClass(String.class);
輸出:false           

四、擷取所有父類

List<Class<?>> classArray = ClassUtils.getAllSuperclasses(String.class);
輸出:[class java.lang.Object]           
100個Java工具類之39:類工具類Apache之ClassUtils

五、擷取實作的所有接口

List<Class<?>> classAry = ClassUtils.getAllInterfaces(String.class);
輸出:[interface java.io.Serializable, interface java.lang.Comparable, interface java.lang.CharSequence]           

六、判斷是否是基礎類型/包裝類型

//判斷是否是包裝類型,如Boolean, Byte, Character, Short, Integer, Long, Float, Double 或者 Void:
boolean isPrimitiveWrapper = ClassUtils.isPrimitiveWrapper(int.class);
輸出:true
//判斷是否為基礎類或者包裝類型
boolean isPrimitiveWrapper = ClassUtils.isPrimitiveOrWrapper(int.class);
輸出:true           
100個Java工具類之39:類工具類Apache之ClassUtils

七、包裝類型轉基礎類型

Class clazz = ClassUtils.wrapperToPrimitive(Long.class);
輸出:long           

八、類名字元串和class互轉

//類名字元串轉class
List<String> list = new ArrayList<>();
list.add("java.lang.String");
list.add("java.lang.Long");
List<Class<?>> classes = ClassUtils.convertClassNamesToClasses(list);
輸出:[class java.lang.String, class java.lang.Long]
//class轉類名字元串
List<Class<?>> classes = new ArrayList<>();
classes.add(String.class);
classes.add(Long.class);
List<String> list = ClassUtils.convertClassesToClassNames(classes);
輸出:[java.lang.String, java.lang.Long]           

感謝您的閱讀,給個贊給個關注再走哦 ^_^

100個Java工具類之39:類工具類Apache之ClassUtils