【Class工具类】ClassUtils

ClassUtils 介绍

一、官方API地址

    官网地址:ClassUtils.html



二、ClassUtils 常用API

1.导入POM文件

    这里使用的是:3.9 的版本,还是比较新的

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
     <version>3.9</version>
</dependency>

2.常用API介绍
方法名方法介绍
getName获取类名(包含包路径)
getShortClassName获取类名(不包含包路径)
getSimpleName获取类名(不包含包路径)
getShortCanonicalName获取类名(不包含包路径)
getPackageName获取包名
isAssignable判断是否可以转型
isInnerClass判断是否为内部类
isPrimitiveWrapper判断是否为包装类型
isPrimitiveOrWrapper判断是否为基础类型
wrapperToPrimitive基础类型和包装类型转换
wrapperToPrimitives基础类型和包装类型转换
convertClassesToClassNames类名字符串转 class类
convertClassNamesToClassesclass类转类名字符串
toClass对象转Class对象获取缩略名
getAbbreviatedName获取缩略名
getAllInterfaces获得所有实现的接口
getAllSuperclasses获取所有父类
hierarchy获取父类层级

3.API的使用

       getName 获取类名(包含包路径)

// getName(final Class<?> cls)
System.out.println(ClassUtils.getName(String.class)); // java.lang.String
// getName(final Class<?> cls, final String valueIfNull)
System.out.println(ClassUtils.getName(null, "java.lang.Boolean")); // java.lang.Boolean

// getName(final Object object)
System.out.println(ClassUtils.getName(str)); // java.lang.String
// getName(final Class<?> cls, final String valueIfNull)
System.out.println(ClassUtils.getName(null, "java.lang.Boolean")); // java.lang.Boolean

       getShortClassName          获取类名(不包含包路径)
       getSimpleName                获取类名(不包含包路径)
       getShortCanonicalName  获取类名(不包含包路径)

//获取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

       它们的区别:对于内部类区别就显示出来了,其他情况区别不大

//获取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

       getPackageName(Class<?> cls) 获取包名

//获取包名
String packName = ClassUtils.getPackageName(String.class);
System.out.println(packName); // = java.lang

String packName2 = ClassUtils.getPackageName(Beans.class);
System.out.println(packName2); // = java.beans

//为空,默认返回第二个参数的值
String packName3 = ClassUtils.getPackageName(null,"the object is null");
System.out.println(packName3); // = the object is null

//传入参数为字符串
String packName4 = ClassUtils.getPackageName("java.lang.String");
System.out.println(packName4); // = java.lang

//获取规范名
String packName5 = ClassUtils.getPackageCanonicalName(String.class);
System.out.println(packName5); // = java.lang

      isAssignable(Class<?> cls, Class<?> toClass) 判断是否为转型
      isAssignable(Class<?> cls, Class<?> toClass, final boolean autoboxing)
      判断是否为转型,autoboxing是否在原语和包装器之间使用隐式自动装箱/拆箱

System.out.println("判断是否可以转型.");
System.out.println(ClassUtils.isAssignable(Date.class, Object.class)); //= true
System.out.println(ClassUtils.isAssignable(Object.class, Date.class)); //=false

       isInnerClass(Class<?> cls) 判断是否为内部类

System.out.println(ClassUtils.isInnerClass(Map.Entry.class)); // = ture
System.out.println(ClassUtils.isInnerClass(Object.class)); //= false

       isPrimitiveWrapper(Class<?> type)     判断是否为包装类型
       isPrimitiveOrWrapper(Class<?> type) 判断是否为基础类型

// 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

       wrapperToPrimitive(Class<?> cls)      基础类型和包装类型转换
       wrapperToPrimitives(Class<?>… cls) 基础类型和包装类型转换

System.out.println(ClassUtils.wrapperToPrimitive(Integer.class)); // = int

       convertClassesToClassNames(List<Class<?>> classes)    类名字符串转 class类
       convertClassNamesToClasses(List classNames)                class类转类名字符串

       toClass(Object… array) 对象转Class对象获取缩略名

//类转化为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) 获取缩略名

//获取类的缩略名称
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); // j.l.String
System.out.println(abbreviatedName2); // j.l.String
System.out.println(abbreviatedName3); // j.l.String
System.out.println(abbreviatedName4); // java.lang.String

      getAllInterfaces(Class<?> cls) 获得所有实现的接口

//获得所有实现的接口
List<Class<?>> classAry = ClassUtils.getAllInterfaces(String.class);
System.out.println(ArrayUtils.toString(classAry));
// [interface java.io.Serializable, interface java.lang.Comparable, interface java.lang.CharSequence]

      getAllSuperclasses(Class<?> cls) 获取所有父类

//获得所有的父类
List<Class<?>> classArray = ClassUtils.getAllSuperclasses(String.class);
System.out.println(ArrayUtils.toString(classArray));
//[class java.lang.Object]

      hierarchy(Class<?> type) 获取父类层级

Iterator<Class<?>> myIterator = ClassUtils.hierarchy(ArrayList.class).iterator();
while(myIterator.hasNext()){
	System.out.println(myIterator.next());
}
// class java.util.ArrayList
// class java.util.AbstractList
// class java.util.AbstractCollection
// class java.lang.Object
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值