程序包 org.anyline.util

类 ClassUtil

java.lang.Object
org.anyline.util.ClassUtil

public class ClassUtil extends Object
  • 构造器详细资料

    • ClassUtil

      public ClassUtil()
  • 方法详细资料

    • regImplement

      public static void regImplement(Class interfaceClass, Class implementClass)
    • isPrimitiveClass

      public static boolean isPrimitiveClass(Object obj)
      是否是基础类型(不包含String类型)
      参数:
      obj - 对象或类, 如果是对象先getClass()
      返回:
      boolean
    • isWrapClass

      public static boolean isWrapClass(Object obj)
      是否是封装类(基础类型之外的类) String类返回true
      参数:
      obj - obj
      返回:
      boolean
    • list

      public static List<Class<?>> list(String packageName, boolean recursion, Class<?>... bases)
    • names

      public static List<String> names(String packageName, boolean recursion, Class<?>... bases)
    • isInSub

      public static boolean isInSub(Class<?> clazz, Class<?>... bases)
      clazz是否是bases子类或实现了bases接口(满足其中一个)
      参数:
      clazz - 类
      bases - 父类或接口
      返回:
      boolean
    • isAllSub

      public static boolean isAllSub(Class<?> clazz, Class<?>... bases)
      是否是bases子类或实现了 bases 接口(满足全部)
      参数:
      clazz - clazz
      bases - bases
      返回:
      boolean
    • hasAnnotation

      public static boolean hasAnnotation(Class clazz, String annotation)
    • parseAnnotationFieldValues

      public static List<Object> parseAnnotationFieldValues(Class target, String annotation, String field, int qty)
      反射类注解的属性值 在不确定具体注解与属性的情况下使用 注解名与属性名不区分大小写 *表示任意字符
      参数:
      target - 类
      annotation - 注解类名 如: *, Table*
      field - 属性名 如: *, value, name, *package*
      qty - 最多取几个值 -1:不限制
      返回:
      List
    • parseAnnotationFieldValues

      public static List<Object> parseAnnotationFieldValues(Class target, String annotation, String field)
    • parseAnnotationFieldValue

      public static Object parseAnnotationFieldValue(Class target, String annotation, String field)
    • parseAnnotationFieldValues

      public static List<Object> parseAnnotationFieldValues(Field target, String annotation, String field, int qty)
      反射属性target上的注解, 获取注解上指定的属性值 注解名与属性名不区分大小写 *表示任意字符
      参数:
      target - 类的属性
      annotation - 注解类名 支持模糊匹配 如: *, Table*
      field - 注解的属性名 如: *, value, name, *package*
      qty - 最多取几个值 -1:不限制
      返回:
      List
    • parseAnnotationFieldValues

      public static List<Object> parseAnnotationFieldValues(Field target, String annotation, String field)
    • parseAnnotationFieldValue

      public static Object parseAnnotationFieldValue(Field target, String annotation, String field)
    • getFields

      public static List<Field> getFields(Class<?> clazz, boolean statics, boolean finals)
      提取类及父类的所有属性
      参数:
      clazz - clazz
      statics - 是否返回静态属性
      finals - 是否返回final属性
      返回:
      List
    • getFields

      public static List<Field> getFields(Class<?> clazz)
    • getFieldsName

      public static List<String> getFieldsName(Class<?> clazz)
    • getMethods

      public static List<Method> getMethods(Class<?> clazz, boolean recursion)
    • getMethod

      public static Method getMethod(Class<?> clazz, String name, boolean recursion, Class<?>... parameterTypes)
    • getMethod

      public static Method getMethod(Class<?> clazz, String name, Class<?>... parameterTypes)
    • getField

      public static Field getField(Class<?> clazz, String name, boolean recursion)
    • getField

      public static Field getField(List<Field> fields, String name, boolean ignoreCase, boolean ignoreSplit)
      根据名称过滤属性
      参数:
      fields - 属性s
      name - 名称
      ignoreCase - 是否忽略大小写
      ignoreSplit - 是否忽略分隔符号
      返回:
      Field
    • getField

      public static Field getField(Class<?> clazz, String name)
    • getFieldsByAnnotation

      public static List<Field> getFieldsByAnnotation(Class clazz, Class annotation)
      查询指定类的有annotation注解的属性
      参数:
      clazz - clazz
      annotation - annotation
      返回:
      List
    • getFieldAnnotations

      public static List<Annotation> getFieldAnnotations(Field field, String... names)
      根据注解名称 获取属性上的注解
      参数:
      field - 属性
      names - 注解名称
      返回:
      Annotation
    • getFieldAnnotation

      public static Annotation getFieldAnnotation(Field field, String... names)
      根据注解名称 获取属性上的注解
      参数:
      field - 属性
      names - 注解名称
      返回:
      Annotation
    • getFieldsByAnnotation

      public static List<Field> getFieldsByAnnotation(Class clazz, String... annotations)
      查询指定类的有annotation注解的属性
      参数:
      clazz - clazz
      annotations - annotation 支持模糊匹配, 不区分大小写 如 Table*
      返回:
      List
    • getClasses

      public static List<Class> getClasses(String pack, Class... bases)
      pack包下的所有类 不包括jar包中定义类
      参数:
      pack - pack
      bases - bases
      返回:
      List
    • parseAnnotationFieldValue

      public static String parseAnnotationFieldValue(Class clazz, String... configs)
      根据注解名与注解类属性 获取指定类上的注解值
      参数:
      clazz - clazz上的注解
      configs - 注册名.注解属性名, 不区分大小写 支持模糊匹配 如 *Table.ID*
      返回:
      String
    • parseAnnotationFieldValue

      public static String parseAnnotationFieldValue(Field field, String... configs)
      根据注解名与注解类属性 获取指定属性上的注解值
      参数:
      field - field上的注解
      configs - 注册名.注解属性名, 不区分大小写 支持模糊匹配 如 *Table.ID* 可以只提供注解名如Column则依次按Column.name, Column.value解析
      返回:
      String
    • getComponentClass

      public static Class getComponentClass(Field field)
      根据属性获取 集合或数组的泛型类
      参数:
      field - 属性
      返回:
      Class
    • getComponentClass

      public static Class getComponentClass(Class clazz)
      集合或数组的泛型类
      参数:
      clazz - 需要是实例化过的对象getClass()返回的结果
      返回:
      Class
    • getComponentClass

      public static Class getComponentClass(Object obj)
    • type

      public static String type(Object obj)
      对象类型
      int[] > int[]
      Integer[] > java.long.Integer[]
      参数:
      obj - 对象
      返回:
      类型
    • type

      public static String type(Field field)
    • type

      public static String type(Class clazz)
    • newInstance

      public static Object newInstance(Class clazz) throws Exception
      抛出:
      Exception