类 ClassUtil

java.lang.Object
org.tio.utils.hutool.ClassUtil

public class ClassUtil extends Object
作者:
tanyaowu 2018年8月5日 下午6:34:56
  • 构造器详细资料

    • ClassUtil

      public ClassUtil()
  • 方法详细资料

    • getClass

      public static <T> Class<T> getClass(T obj)
      null安全的获取对象类型
      类型参数:
      T - 对象类型
      参数:
      obj - 对象,如果为null 返回null
      返回:
      对象类型,提供对象如果为null 返回null
    • getClassName

      public static String getClassName(Object obj, boolean isSimple)
      获取类名
      参数:
      obj - 获取类名对象
      isSimple - 是否简单类名,如果为true,返回不带包名的类名
      返回:
      类名
      从以下版本开始:
      3.0.7
    • getClassName

      public static String getClassName(Class<?> clazz, boolean isSimple)
      获取类名
      类名并不包含“.class”这个扩展名
      例如:ClassUtil这个类
       isSimple为false: "com.xiaoleilu.hutool.util.ClassUtil"
       isSimple为true: "ClassUtil"
       
      参数:
      clazz - 类
      isSimple - 是否简单类名,如果为true,返回不带包名的类名
      返回:
      类名
      从以下版本开始:
      3.0.7
    • getClasses

      public static Class<?>[] getClasses(Object... objects)
      获得对象数组的类数组
      参数:
      objects - 对象数组,如果数组中存在null元素,则此元素被认为是Object类型
      返回:
      类数组
    • equals

      public static boolean equals(Class<?> clazz, String className, boolean ignoreCase)
      指定类是否与给定的类名相同
      参数:
      clazz - 类
      className - 类名,可以是全类名(包含包名),也可以是简单类名(不包含包名)
      ignoreCase - 是否忽略大小写
      返回:
      指定类是否与给定的类名相同
      从以下版本开始:
      3.0.7
    • getPublicMethodNames

      public static Set<String> getPublicMethodNames(Class<?> clazz)
      获得指定类中的Public方法名
      去重重载的方法
      参数:
      clazz - 类
      返回:
      方法名Set
    • getPublicMethods

      public static Method[] getPublicMethods(Class<?> clazz)
      获得本类及其父类所有Public方法
      参数:
      clazz - 查找方法的类
      返回:
      过滤后的方法列表
    • getPublicMethod

      public static Method getPublicMethod(Class<?> clazz, String methodName, Class<?>... paramTypes) throws SecurityException
      查找指定Public方法 如果找不到对应的方法或方法不为public的则返回null
      参数:
      clazz - 类
      methodName - 方法名
      paramTypes - 参数类型
      返回:
      方法
      抛出:
      SecurityException - 无权访问抛出异常
    • getDeclaredField

      public static Field getDeclaredField(Class<?> clazz, String fieldName) throws SecurityException
      查找指定类中的所有字段(包括非public字段), 字段不存在则返回null
      参数:
      clazz - 被查找字段的类
      fieldName - 字段名
      返回:
      字段
      抛出:
      SecurityException - 安全异常
    • getDeclaredFields

      public static Field[] getDeclaredFields(Class<?> clazz) throws SecurityException
      查找指定类中的所有字段(包括非public字段)
      参数:
      clazz - 被查找字段的类
      返回:
      字段
      抛出:
      SecurityException - 安全异常
    • isPublic

      public static boolean isPublic(Class<?> clazz)
      指定类是否为Public
      参数:
      clazz - 类
      返回:
      是否为public
    • isPublic

      public static boolean isPublic(Method method)
      指定方法是否为Public
      参数:
      method - 方法
      返回:
      是否为public
    • isNotPublic

      public static boolean isNotPublic(Class<?> clazz)
      指定类是否为非public
      参数:
      clazz - 类
      返回:
      是否为非public
    • isNotPublic

      public static boolean isNotPublic(Method method)
      指定方法是否为非public
      参数:
      method - 方法
      返回:
      是否为非public
    • isStatic

      public static boolean isStatic(Method method)
      是否为静态方法
      参数:
      method - 方法
      返回:
      是否为静态方法
    • setAccessible

      public static Method setAccessible(Method method)
      设置方法为可访问
      参数:
      method - 方法
      返回:
      方法
    • isAbstract

      public static boolean isAbstract(Class<?> clazz)
      是否为抽象类
      参数:
      clazz - 类
      返回:
      是否为抽象类
    • isNormalClass

      public static boolean isNormalClass(Class<?> clazz)
      是否为标准的类
      这个类必须:
       1、非接口 
       2、非抽象类 
       3、非Enum枚举 
       4、非数组 
       5、非注解 
       6、非原始类型(int, long等)
       
      参数:
      clazz - 类
      返回:
      是否为标准类
    • isEnum

      public static boolean isEnum(Class<?> clazz)
      判断类是否为枚举类型
      参数:
      clazz - 类
      返回:
      是否为枚举类型
      从以下版本开始:
      3.2.0
    • getDefaultValue

      public static Object getDefaultValue(Class<?> clazz)
      获取指定类型分的默认值
      默认值规则为:
       1、如果为原始类型,返回0
       2、非原始类型返回null
       
      参数:
      clazz - 类
      返回:
      默认值
      从以下版本开始:
      3.0.8
    • getDefaultValues

      public static Object[] getDefaultValues(Class<?>... classes)
      获得默认值列表
      参数:
      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.core
      classScanHandler -
      抛出:
      ClassNotFoundException
      IOException
    • isPrimitiveWrapper

      public static boolean isPrimitiveWrapper(Class<?> clazz)
      是否为包装类型
      参数:
      clazz - 类
      返回:
      是否为包装类型
    • isBasicType

      public static boolean isBasicType(Class<?> clazz)
      是否为基本类型(包括包装类和原始类)
      参数:
      clazz - 类
      返回:
      是否为基本类型
    • isSimpleTypeOrArray

      public static boolean isSimpleTypeOrArray(Class<?> clazz)
      是否简单值类型或简单值类型的数组
      包括:原始类型,、String、other CharSequence, a Number, a Date, a URI, a URL, a Locale or a Class及其数组
      参数:
      clazz - 属性类
      返回:
      是否简单值类型或简单值类型的数组
    • isSimpleValueType

      public static boolean isSimpleValueType(Class<?> clazz)
      是否为简单值类型
      包括:原始类型,、String、other CharSequence, a Number, a Date, a URI, a URL, a Locale or a Class.
      参数:
      clazz - 类
      返回:
      是否为简单值类型