public class ClassUtil extends Object
| 限定符和类型 | 类和说明 |
|---|---|
static interface |
ClassUtil.ClassFilter
类过滤器,用于过滤不需要加载的类
|
| 限定符和类型 | 方法和说明 |
|---|---|
static Class<?> |
castToPrimitive(Class<?> clazz)
转换基本类型
|
static <T extends Serializable> |
cloneObj(T obj)
克隆对象
|
static Class<?>[] |
getClasses(Object... objects)
获得对象数组的类数组
|
static ClassLoader |
getClassLoader()
获得class loader
若当前线程class loader不存在,取当前类的class loader |
static Set<String> |
getClassPathResources()
获得ClassPath
|
static Set<String> |
getClassPaths(String packageName)
获得ClassPath
|
static ClassLoader |
getContextClassLoader() |
static String[] |
getJavaClassPaths() |
static Set<String> |
getMethods(Class<?> clazz)
获得指定类中的Public方法名
去重重载的方法 |
static <T> T |
invoke(String classNameDotMethodName,
boolean isSingleton,
Object... args)
执行方法
可执行Private方法,也可执行static方法 执行非static方法时,必须满足对象有默认构造方法 |
static <T> T |
invoke(String classNameDotMethodName,
Object... args)
执行方法
可执行Private方法,也可执行static方法 执行非static方法时,必须满足对象有默认构造方法 非单例模式,如果是非静态方法,每次创建一个新对象 |
static <T> T |
invoke(String className,
String methodName,
boolean isSingleton,
Object... args)
执行方法
可执行Private方法,也可执行static方法 执行非static方法时,必须满足对象有默认构造方法 |
static <T> T |
invoke(String className,
String methodName,
Object... args)
执行方法
可执行Private方法,也可执行static方法 执行非static方法时,必须满足对象有默认构造方法 非单例模式,如果是非静态方法,每次创建一个新对象 |
static <T> Class<T> |
loadClass(String className)
加载类并初始化
|
static <T> Class<T> |
loadClass(String className,
boolean isInitialized)
加载类
|
static <T> T |
newInstance(Class<T> clazz)
实例化对象
|
static <T> T |
newInstance(Class<T> clazz,
Object... params)
实例化对象
|
static <T> T |
newInstance(String clazz)
实例化对象
|
static Set<Class<?>> |
scanPackage()
扫面该包路径下所有class文件
|
static Set<Class<?>> |
scanPackage(String packageName)
扫面该包路径下所有class文件
|
static Set<Class<?>> |
scanPackage(String packageName,
ClassUtil.ClassFilter classFilter)
扫面包路径下满足class过滤器条件的所有class文件,
如果包路径为 com.abs + A.class 但是输入 abs会产生classNotFoundException
因为className 应该为 com.abs.A 现在却成为abs.A,此工具类对该异常进行忽略处理,有可能是一个不完善的地方,以后需要进行修改
|
static Set<Class<?>> |
scanPackageByAnnotation(String packageName,
Class<? extends Annotation> annotationClass)
扫描指定包路径下所有包含指定注解的类
|
static Set<Class<?>> |
scanPackageBySuper(String packageName,
Class<?> superClass)
扫描指定包路径下所有指定类的子类
|
public static Class<?>[] getClasses(Object... objects)
objects - 对象数组public static Set<Class<?>> scanPackage(String packageName)
packageName - 包路径 com | com. | com.abs | com.abs.public static Set<Class<?>> scanPackageByAnnotation(String packageName, Class<? extends Annotation> annotationClass)
packageName - 包路径annotationClass - 注解类public static Set<Class<?>> scanPackageBySuper(String packageName, Class<?> superClass)
packageName - 包路径superClass - 父类public static Set<Class<?>> scanPackage(String packageName, ClassUtil.ClassFilter classFilter)
packageName - 包路径 com | com. | com.abs | com.abs.classFilter - class过滤器,过滤掉不需要的classpublic static final Set<String> getMethods(Class<?> clazz)
clazz - 类public static Set<String> getClassPaths(String packageName)
packageName - 包名称public static String[] getJavaClassPaths()
public static Class<?> castToPrimitive(Class<?> clazz)
clazz - 被转换为基本类型的类,必须为包装类型public static ClassLoader getContextClassLoader()
public static ClassLoader getClassLoader()
public static <T> T newInstance(String clazz)
clazz - 类名public static <T> T newInstance(Class<T> clazz)
clazz - 类public static <T> T newInstance(Class<T> clazz, Object... params)
clazz - 类public static <T extends Serializable> T cloneObj(T obj)
obj - 被克隆对象IOExceptionClassNotFoundExceptionpublic static <T> Class<T> loadClass(String className, boolean isInitialized)
T - className - 类名isInitialized - 是否初始化public static <T> Class<T> loadClass(String className)
T - className - 类名public static <T> T invoke(String classNameDotMethodName, Object... args)
T - classNameDotMethodName - 类名和方法名表达式,例如:com.xiaoleilu.hutool.StrUtil.isEmptyargs - 参数,必须严格对应指定方法的参数类型和数量public static <T> T invoke(String classNameDotMethodName, boolean isSingleton, Object... args)
T - classNameDotMethodName - 类名和方法名表达式,例如:com.xiaoleilu.hutool.StrUtil.isEmptyisSingleton - 是否为单例对象,如果此参数为false,每次执行方法时创建一个新对象args - 参数,必须严格对应指定方法的参数类型和数量public static <T> T invoke(String className, String methodName, Object... args)
T - className - 类名,完整类路径methodName - 方法名args - 参数,必须严格对应指定方法的参数类型和数量Copyright © 2015. All rights reserved.