Class ClassUtil

  • Direct Known Subclasses:
    U.C

    public class ClassUtil
    extends java.lang.Object
    关于Class的一些操作
    Author:
    WD
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static <E> java.lang.Class<E> bean​(java.lang.Class<E> c, java.lang.String name)
      根据类名称或则指定类
      static <E> java.lang.Class<E> bean​(java.lang.String name)
      根据类名称或则指定类
      static java.lang.Object empty​(java.lang.Class<?> cls)
      根据给入的Class返回对应的空对象
      static java.lang.Class<?> forName​(java.lang.String className)
      获得Class 会处理基础类型
      static <E> java.lang.Class<E> from​(java.lang.Class<E> c)
      获取指定接口下的最后一个实现类
      static <E> java.lang.Class<E> from​(java.lang.Class<E> c, int i)
      获取指定接口下的指定索引的实现类
      static <E> java.lang.Class<E> from​(java.lang.Class<E> c, java.lang.Class<? extends E> def)
      获取指定接口下的一个实现类 当实现大于2个不使用默认
      static java.util.List<java.lang.annotation.Annotation> getAnnotations​(java.lang.Class<?> c)
      获得本类实现的注解
      static java.lang.ClassLoader getClassLoader()
      获得当前ClassLoader
      static java.lang.Class<?>[] getGenericClass​(java.lang.Class<?> clazz)
      获得指定类型的泛型
      static java.lang.Class<?> getGenericClass​(java.lang.Class<?> clazz, int index)
      获得指定类型的泛型
      static java.lang.Class<?>[] getGenericClass​(java.lang.reflect.Type type)
      获得指定类型的泛型
      static java.lang.Class<?> getGenericClass​(java.lang.reflect.Type type, int index)
      获得指定类型的泛型
      static java.util.List<java.lang.Class<?>> getInterfaces​(java.lang.Class<?> c)
      获得本类下的所有实现接口
      static java.util.List<java.lang.Class<?>> getPackageClasses()
      获得指定包下的所有Class
      static java.util.List<java.lang.Class<?>> getPackageClasses​(java.lang.String packageName)
      获得指定包下的所有Class
      static java.util.List<java.lang.reflect.Method> getPublicMethod​(java.lang.Class<?> c)
      获取本类下所有公用方法 不读取父类
      static <E> E ioc​(E o)
      对传入的对象进行类型注入 非基础类型
      static <E> E ioc​(java.lang.Class<E> c)
      对传入的类进行实例化并进行类型注入 非基础类型
      static boolean isBaseType​(java.lang.Class<?> clazz)
      判断是否是基础类型
      static <E> java.util.List<java.lang.Class<E>> list​(java.lang.Class<E> c)
      获取指定接口下的所有实现类
      static java.lang.Class<?> loadClass​(java.lang.String className)
      加载类
      static <T> T newInstance​(java.lang.Class<T> clazz, java.lang.Class<?>... parameterTypes)
      实例化对象
      static java.lang.Object newInstance​(java.lang.String className)
      使用Class的newInstance()方法实例一个对象 封装异常为运行时异常
      static <E> E newInstance​(java.lang.String className, E obj)
      实例化对象
      static java.lang.Object newInstance​(java.lang.String className, java.lang.Class<?>... parameterTypes)
      实例化对象
      static <E> E newProxyInstance​(java.lang.Class<E> cls, java.lang.reflect.InvocationHandler handler)
      使用JDK代理生成代理类
      static <E> java.util.List<java.lang.Class<E>> pack​(java.lang.String name, java.lang.Class<E> cls)
      获得包名下指定接口的实现类
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ClassUtil

        public ClassUtil()
    • Method Detail

      • ioc

        public static <E> E ioc​(java.lang.Class<E> c)
        对传入的类进行实例化并进行类型注入 非基础类型
        Parameters:
        c - 要注入的类
      • ioc

        public static <E> E ioc​(E o)
        对传入的对象进行类型注入 非基础类型
        Parameters:
        o - 要注入的对象
      • pack

        public static <E> java.util.List<java.lang.Class<E>> pack​(java.lang.String name,
                                                                  java.lang.Class<E> cls)
        获得包名下指定接口的实现类
        Type Parameters:
        E -
        Parameters:
        name - 包名
        c - 超类类型
        Returns:
        实现类列表
      • bean

        public static <E> java.lang.Class<E> bean​(java.lang.Class<E> c,
                                                  java.lang.String name)
        根据类名称或则指定类
        Parameters:
        c - 指定类下的
        name - 类名称
        Returns:
      • bean

        public static <E> java.lang.Class<E> bean​(java.lang.String name)
        根据类名称或则指定类
        Parameters:
        name - 类名称
        Returns:
      • list

        public static <E> java.util.List<java.lang.Class<E>> list​(java.lang.Class<E> c)
        获取指定接口下的所有实现类
        Parameters:
        c -
        Returns:
      • from

        public static <E> java.lang.Class<E> from​(java.lang.Class<E> c)
        获取指定接口下的最后一个实现类
        Parameters:
        c - 要指定接口或注解的类
        Returns:
      • from

        public static <E> java.lang.Class<E> from​(java.lang.Class<E> c,
                                                  java.lang.Class<? extends E> def)
        获取指定接口下的一个实现类 当实现大于2个不使用默认
        Parameters:
        c - 要指定接口或注解的类
        def - 默认实现
        Returns:
      • from

        public static <E> java.lang.Class<E> from​(java.lang.Class<E> c,
                                                  int i)
        获取指定接口下的指定索引的实现类
        Parameters:
        c - 要指定接口或注解的类
        i - 索引第几个
        Returns:
      • empty

        public static java.lang.Object empty​(java.lang.Class<?> cls)
        根据给入的Class返回对应的空对象
        Parameters:
        cls - 声明的对象
        Returns:
        空对象
      • isBaseType

        public static boolean isBaseType​(java.lang.Class<?> clazz)
        判断是否是基础类型
        Parameters:
        clazz - 要检查的类
        Returns:
        是否基础类型
      • getGenericClass

        public static java.lang.Class<?> getGenericClass​(java.lang.Class<?> clazz,
                                                         int index)
        获得指定类型的泛型
        Parameters:
        clazz - 指定的类型
        index - 索引
        Returns:
        这个类的泛型
      • getGenericClass

        public static java.lang.Class<?>[] getGenericClass​(java.lang.Class<?> clazz)
        获得指定类型的泛型
        Parameters:
        clazz - 指定的类型
        Returns:
        这个类的泛型
      • getGenericClass

        public static java.lang.Class<?>[] getGenericClass​(java.lang.reflect.Type type)
        获得指定类型的泛型
        Parameters:
        type - 指定的类型
        Returns:
        这个类的泛型
      • getGenericClass

        public static java.lang.Class<?> getGenericClass​(java.lang.reflect.Type type,
                                                         int index)
        获得指定类型的泛型
        Parameters:
        type - 指定的类型
        index - 索引
        Returns:
        这个类型的泛型
      • loadClass

        public static java.lang.Class<?> loadClass​(java.lang.String className)
        加载类
        Parameters:
        className - 类名
        Returns:
        获得的类
      • newProxyInstance

        public static <E> E newProxyInstance​(java.lang.Class<E> cls,
                                             java.lang.reflect.InvocationHandler handler)
        使用JDK代理生成代理类
        Type Parameters:
        E -
        Parameters:
        cls - 要生成代理的类接口
        handler - 代理方法处理器
        Returns:
        代理对象
      • forName

        public static java.lang.Class<?> forName​(java.lang.String className)
        获得Class 会处理基础类型
        Parameters:
        className - Class名称
        Returns:
        Class
      • newInstance

        public static java.lang.Object newInstance​(java.lang.String className,
                                                   java.lang.Class<?>... parameterTypes)
        实例化对象
        Parameters:
        className - 类名
        parameterTypes - 参数类型
        Returns:
        实例化对象
      • newInstance

        public static <E> E newInstance​(java.lang.String className,
                                        E obj)
        实例化对象
        Type Parameters:
        E - 泛型
        Parameters:
        className - 类名
        obj - 默认值
        Returns:
        实例化对象
      • newInstance

        public static <T> T newInstance​(java.lang.Class<T> clazz,
                                        java.lang.Class<?>... parameterTypes)
        实例化对象
        Type Parameters:
        T - 泛型
        Parameters:
        clazz - 类
        parameterTypes - 参数类型
        Returns:
        实例化对象
      • newInstance

        public static java.lang.Object newInstance​(java.lang.String className)
        使用Class的newInstance()方法实例一个对象 封装异常为运行时异常
        Parameters:
        className - 对象的类
        Returns:
        实例的对象
      • getPublicMethod

        public static java.util.List<java.lang.reflect.Method> getPublicMethod​(java.lang.Class<?> c)
        获取本类下所有公用方法 不读取父类
        Parameters:
        c - 类
        Returns:
        list
      • getPackageClasses

        public static java.util.List<java.lang.Class<?>> getPackageClasses()
        获得指定包下的所有Class
        Returns:
        类列表
      • getPackageClasses

        public static java.util.List<java.lang.Class<?>> getPackageClasses​(java.lang.String packageName)
        获得指定包下的所有Class
        Parameters:
        packageName - 报名
        Returns:
        类列表
      • getClassLoader

        public static java.lang.ClassLoader getClassLoader()
        获得当前ClassLoader
        Returns:
        ClassLoader
      • getInterfaces

        public static java.util.List<java.lang.Class<?>> getInterfaces​(java.lang.Class<?> c)
        获得本类下的所有实现接口
        Parameters:
        c - 要获取的类
        Returns:
        本类实现的所有接口
      • getAnnotations

        public static java.util.List<java.lang.annotation.Annotation> getAnnotations​(java.lang.Class<?> c)
        获得本类实现的注解
        Parameters:
        c - 要获取的类
        Returns:
        本类实现的所有注解