类 ClassUtil
java.lang.Object
org.tio.utils.hutool.ClassUtil
- 作者:
- tanyaowu 2018年8月5日 下午6:34:56
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明static boolean指定类是否与给定的类名相同static <T> Class<T>getClass(T obj) null安全的获取对象类型static Class<?>[]getClasses(Object... objects) 获得对象数组的类数组static StringgetClassName(Class<?> clazz, boolean isSimple) 获取类名
类名并不包含“.class”这个扩展名
例如:ClassUtil这个类static StringgetClassName(Object obj, boolean isSimple) 获取类名static FieldgetDeclaredField(Class<?> clazz, String fieldName) 查找指定类中的所有字段(包括非public字段), 字段不存在则返回nullstatic Field[]getDeclaredFields(Class<?> clazz) 查找指定类中的所有字段(包括非public字段)static ObjectgetDefaultValue(Class<?> clazz) 获取指定类型分的默认值
默认值规则为:static Object[]getDefaultValues(Class<?>... classes) 获得默认值列表static MethodgetPublicMethod(Class<?> clazz, String methodName, Class<?>... paramTypes) 查找指定Public方法 如果找不到对应的方法或方法不为public的则返回nullgetPublicMethodNames(Class<?> clazz) 获得指定类中的Public方法名
去重重载的方法static Method[]getPublicMethods(Class<?> clazz) 获得本类及其父类所有Public方法static booleanisAbstract(Class<?> clazz) 是否为抽象类static booleanisBasicType(Class<?> clazz) 是否为基本类型(包括包装类和原始类)static boolean判断类是否为枚举类型static booleanisNormalClass(Class<?> clazz) 是否为标准的类
这个类必须:static booleanisNotPublic(Class<?> clazz) 指定类是否为非publicstatic booleanisNotPublic(Method method) 指定方法是否为非publicstatic booleanisPrimitiveWrapper(Class<?> clazz) 是否为包装类型static boolean指定类是否为Publicstatic boolean指定方法是否为Publicstatic booleanisSimpleTypeOrArray(Class<?> clazz) 是否简单值类型或简单值类型的数组
包括:原始类型,、String、other CharSequence, a Number, a Date, a URI, a URL, a Locale or a Class及其数组static booleanisSimpleValueType(Class<?> clazz) 是否为简单值类型
包括:原始类型,、String、other CharSequence, a Number, a Date, a URI, a URL, a Locale or a Class.static boolean是否为静态方法static voidscanPackage(String pkg, ClassScanHandler classScanHandler) 扫描包路径下所有的class文件 代码摘自网上(https://gitee.com/liuyueyi/quicksilver/blob/master/silver-file/src/main/java/com.hust.hui.quicksilver.file/PkgUtil.java),但作了不少改造static MethodsetAccessible(Method method) 设置方法为可访问
-
构造器详细资料
-
ClassUtil
public ClassUtil()
-
-
方法详细资料
-
getClass
null安全的获取对象类型- 类型参数:
T- 对象类型- 参数:
obj- 对象,如果为null返回null- 返回:
- 对象类型,提供对象如果为
null返回null
-
getClassName
获取类名- 参数:
obj- 获取类名对象isSimple- 是否简单类名,如果为true,返回不带包名的类名- 返回:
- 类名
- 从以下版本开始:
- 3.0.7
-
getClassName
获取类名
类名并不包含“.class”这个扩展名
例如:ClassUtil这个类
isSimple为false: "com.xiaoleilu.hutool.util.ClassUtil" isSimple为true: "ClassUtil"
- 参数:
clazz- 类isSimple- 是否简单类名,如果为true,返回不带包名的类名- 返回:
- 类名
- 从以下版本开始:
- 3.0.7
-
getClasses
获得对象数组的类数组- 参数:
objects- 对象数组,如果数组中存在null元素,则此元素被认为是Object类型- 返回:
- 类数组
-
equals
指定类是否与给定的类名相同- 参数:
clazz- 类className- 类名,可以是全类名(包含包名),也可以是简单类名(不包含包名)ignoreCase- 是否忽略大小写- 返回:
- 指定类是否与给定的类名相同
- 从以下版本开始:
- 3.0.7
-
getPublicMethodNames
获得指定类中的Public方法名
去重重载的方法- 参数:
clazz- 类- 返回:
- 方法名Set
-
getPublicMethods
获得本类及其父类所有Public方法- 参数:
clazz- 查找方法的类- 返回:
- 过滤后的方法列表
-
getPublicMethod
public static Method getPublicMethod(Class<?> clazz, String methodName, Class<?>... paramTypes) throws SecurityException 查找指定Public方法 如果找不到对应的方法或方法不为public的则返回null- 参数:
clazz- 类methodName- 方法名paramTypes- 参数类型- 返回:
- 方法
- 抛出:
SecurityException- 无权访问抛出异常
-
getDeclaredField
查找指定类中的所有字段(包括非public字段), 字段不存在则返回null- 参数:
clazz- 被查找字段的类fieldName- 字段名- 返回:
- 字段
- 抛出:
SecurityException- 安全异常
-
getDeclaredFields
查找指定类中的所有字段(包括非public字段)- 参数:
clazz- 被查找字段的类- 返回:
- 字段
- 抛出:
SecurityException- 安全异常
-
isPublic
指定类是否为Public- 参数:
clazz- 类- 返回:
- 是否为public
-
isPublic
指定方法是否为Public- 参数:
method- 方法- 返回:
- 是否为public
-
isNotPublic
指定类是否为非public- 参数:
clazz- 类- 返回:
- 是否为非public
-
isNotPublic
指定方法是否为非public- 参数:
method- 方法- 返回:
- 是否为非public
-
isStatic
是否为静态方法- 参数:
method- 方法- 返回:
- 是否为静态方法
-
setAccessible
设置方法为可访问- 参数:
method- 方法- 返回:
- 方法
-
isAbstract
是否为抽象类- 参数:
clazz- 类- 返回:
- 是否为抽象类
-
isNormalClass
是否为标准的类
这个类必须:1、非接口 2、非抽象类 3、非Enum枚举 4、非数组 5、非注解 6、非原始类型(int, long等)
- 参数:
clazz- 类- 返回:
- 是否为标准类
-
isEnum
判断类是否为枚举类型- 参数:
clazz- 类- 返回:
- 是否为枚举类型
- 从以下版本开始:
- 3.2.0
-
getDefaultValue
获取指定类型分的默认值
默认值规则为:1、如果为原始类型,返回0 2、非原始类型返回
null- 参数:
clazz- 类- 返回:
- 默认值
- 从以下版本开始:
- 3.0.8
-
getDefaultValues
获得默认值列表- 参数:
classes- 值类型- 返回:
- 默认值列表
- 从以下版本开始:
- 3.0.9
-
scanPackage
public static void scanPackage(String pkg, ClassScanHandler classScanHandler) throws ClassNotFoundException, IOException 扫描包路径下所有的class文件 代码摘自网上(https://gitee.com/liuyueyi/quicksilver/blob/master/silver-file/src/main/java/com.hust.hui.quicksilver.file/PkgUtil.java),但作了不少改造- 参数:
pkg- 形如:org.tio.coreclassScanHandler-- 抛出:
ClassNotFoundExceptionIOException
-
isPrimitiveWrapper
是否为包装类型- 参数:
clazz- 类- 返回:
- 是否为包装类型
-
isBasicType
是否为基本类型(包括包装类和原始类)- 参数:
clazz- 类- 返回:
- 是否为基本类型
-
isSimpleTypeOrArray
是否简单值类型或简单值类型的数组
包括:原始类型,、String、other CharSequence, a Number, a Date, a URI, a URL, a Locale or a Class及其数组- 参数:
clazz- 属性类- 返回:
- 是否简单值类型或简单值类型的数组
-
isSimpleValueType
是否为简单值类型
包括:原始类型,、String、other CharSequence, a Number, a Date, a URI, a URL, a Locale or a Class.- 参数:
clazz- 类- 返回:
- 是否为简单值类型
-