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
ClassNotFoundException
public static <T> T loadClass(Class<T> clazz)
public static <T> ClassUtils.ExtensionLoader<T> getExtensionLoader(Class<T> clazz) throws Exception
Exception
public static <T> ClassUtils.ExtensionLoader<T> getExtensionLoader(Class<T> clazz, boolean alwaysInternal) throws Exception
Exception
public 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.