public class ClassUtils extends Object
| Modifier and Type | Class and Description |
|---|---|
static class |
ClassUtils.BeanWrapper<T>
类对象包裹器,赋予对象简单的属性操作能力
|
static class |
ClassUtils.ExtensionLoader<T>
服务提供者加载器
|
static interface |
ClassUtils.IFieldValueFilter
类成员属性过滤器接口
|
static class |
ClassUtils.InnerClassLoader
内部类加载器
|
| Modifier and Type | Field and Description |
|---|---|
static Set<String> |
EXCLUDED_METHOD_NAMES |
static String |
PACKAGE_INFO |
static String |
PACKAGE_SEPARATOR |
| Constructor and Description |
|---|
ClassUtils() |
| Modifier and Type | Method and Description |
|---|---|
static Class<?> |
findParentPackage(Class<?> targetClass)
查找目标类上层包对象(若上层为空则继续向上查找,直至找不到为止)
|
static <A extends Annotation> |
getAnnotation(Class<?> targetClass,
Class<A> annotationClass) |
static <A extends Annotation> |
getAnnotation(Object target,
Class<A> annotationClass) |
static Class<?> |
getArrayClassType(Class<?> clazz) |
static ClassLoader |
getDefaultClassLoader() |
static <T> ClassUtils.ExtensionLoader<T> |
getExtensionLoader(Class<T> clazz) |
static <T> ClassUtils.ExtensionLoader<T> |
getExtensionLoader(Class<T> clazz,
boolean alwaysInternal) |
static <A extends Annotation> |
getFieldAnnotationFirst(Class<?> clazz,
Class<A> annotationClazz) |
static <A extends Annotation> |
getFieldAnnotations(Class<?> clazz,
Class<A> annotationClazz) |
static List<Field> |
getFields(Class<?> clazz,
boolean parent)
获取clazz指定的类对象所有的Field对象(若包含其父类对象,直至其父类为空)
|
static String[] |
getInterfaceNames(Class<?> clazz) |
static String[] |
getMethodParamNames(Method method) |
static List<Method> |
getMethods(Class<?> clazz,
boolean parent)
获取clazz指定的类对象所有的Method对象(若包含其父类对象,直至其父类为空)
|
static Package |
getPackage(Class<?> targetClass,
Class<? extends Annotation> annotationClass) |
static <A extends Annotation> |
getPackageAnnotation(Class<?> targetClass,
Class<A> annotationClass) |
static List<Class<?>> |
getParameterizedTypes(Class<?> clazz) |
static <T> T |
impl(Class<?> implClass,
Class<T> interfaceClass) |
static <T> T |
impl(Class<?> implClass,
Class<T> interfaceClass,
Class<?>[] parameterTypes,
Object[] initArgs,
boolean allowNoSuchMethod) |
static <T> T |
impl(String className,
Class<T> interfaceClass,
Class<?> callingClass)
获得指定名称、限定接口的实现类
|
static <T> T |
impl(String className,
Class<T> interfaceClass,
Class<?> callingClass,
Class<?>[] parameterTypes,
Object[] initArgs,
boolean allowNoSuchMethod)
获得指定名称、限定接口,通过特定参数类型构造的实现类
|
static boolean |
isAnnotationOf(Object target,
Class<? extends Annotation> annotationClass) |
static boolean |
isInterfaceOf(Class<?> clazz,
Class<?> interfaceClass) |
static boolean |
isNormalClass(Class<?> clazz) |
static boolean |
isNormalField(Field field) |
static boolean |
isNormalMethod(Method method) |
static boolean |
isSubclassOf(Class<?> clazz,
Class<?> superClass) |
static <T> T |
loadClass(Class<T> clazz) |
static <T> T |
loadClass(Class<T> clazz,
Class<? extends T> defaultClass) |
static Class<?> |
loadClass(String className,
Class<?> callingClass) |
static Class<?> |
loadClassOrNull(String className,
Class<?> callingClass) |
static <T> ClassUtils.BeanWrapper<T> |
wrapper(T target) |
static <T> ClassUtils.BeanWrapper<T> |
wrapperClass(Class<T> clazz) |
public static final String PACKAGE_INFO
public static final String PACKAGE_SEPARATOR
public static ClassLoader getDefaultClassLoader()
public static <T> T impl(String className, Class<T> interfaceClass, Class<?> callingClass)
T - 接口类型className - 实现类名interfaceClass - 限制接口名callingClass - 调用者public static <T> T impl(String className, Class<T> interfaceClass, Class<?> callingClass, Class<?>[] parameterTypes, Object[] initArgs, boolean allowNoSuchMethod)
T - 接口类型className - 实现类名interfaceClass - 限制接口名callingClass - 调用者parameterTypes - 构造方法参数类型集合initArgs - 构造方法参数值集合allowNoSuchMethod - 当发生NoSuchMethodException异常时是否输出日志public static <T> T impl(Class<?> implClass, Class<T> interfaceClass, Class<?>[] parameterTypes, Object[] initArgs, boolean allowNoSuchMethod)
public static Class<?> loadClass(String className, Class<?> callingClass) throws ClassNotFoundException
ClassNotFoundExceptionpublic static <T> T loadClass(Class<T> clazz)
public static <T> ClassUtils.ExtensionLoader<T> getExtensionLoader(Class<T> clazz) throws Exception
Exceptionpublic static <T> ClassUtils.ExtensionLoader<T> getExtensionLoader(Class<T> clazz, boolean alwaysInternal) throws Exception
Exceptionpublic static boolean isNormalClass(Class<?> clazz)
clazz - 目标类public static boolean isNormalMethod(Method method)
method - 目标方法public static boolean isNormalField(Field field)
field - 目标成员public static boolean isSubclassOf(Class<?> clazz, Class<?> superClass)
clazz - 目标类superClass - 父类public static boolean isInterfaceOf(Class<?> clazz, Class<?> interfaceClass)
clazz - 目标对象interfaceClass - 接口类型public static boolean isAnnotationOf(Object target, Class<? extends Annotation> annotationClass)
target - 目标对象,即可以是Field对象、Method对象或是Class对象annotationClass - 注解类对象public static <A extends Annotation> A getAnnotation(Object target, Class<A> annotationClass)
A - 注解类型target - 目标类对象annotationClass - 注解类对象public static <A extends Annotation> A getAnnotation(Class<?> targetClass, Class<A> annotationClass)
public static Package getPackage(Class<?> targetClass, Class<? extends Annotation> annotationClass)
targetClass - 目标类对象annotationClass - 注解类对象public static <A extends Annotation> A getPackageAnnotation(Class<?> targetClass, Class<A> annotationClass)
public static Class<?> findParentPackage(Class<?> targetClass)
targetClass - 目标类public static String[] getInterfaceNames(Class<?> clazz)
clazz - 类型public static List<Class<?>> getParameterizedTypes(Class<?> clazz)
clazz - 类对象public static List<Field> getFields(Class<?> clazz, boolean parent)
clazz - 目标类parent - 是否包含其父类对象public static List<Method> getMethods(Class<?> clazz, boolean parent)
clazz - 目标类parent - 是否包含其父类对象public static <A extends Annotation> List<PairObject<Field,A>> getFieldAnnotations(Class<?> clazz, Class<A> annotationClazz)
A - 注解类型clazz - 目标类annotationClazz - 目标注解类public static <A extends Annotation> PairObject<Field,A> getFieldAnnotationFirst(Class<?> clazz, Class<A> annotationClazz)
A - 注解类型clazz - 目标类annotationClazz - 目标注解类public static String[] getMethodParamNames(Method method)
method - 目标方法public static Class<?> getArrayClassType(Class<?> clazz)
clazz - 数组类型public static <T> ClassUtils.BeanWrapper<T> wrapperClass(Class<T> clazz)
T - 目标类型clazz - 目标类型public static <T> ClassUtils.BeanWrapper<T> wrapper(T target)
T - 目标类型target - 目标类对象Copyright © 2022. All rights reserved.