public class ClassKits extends Object
copy from vipshop VJTools(com.vip.vjtools.vjkit.reflect.ClassUtil) and made some changes.
| 构造器和说明 |
|---|
ClassKits() |
| 限定符和类型 | 方法和说明 |
|---|---|
static List<Class<?>> |
getAllInterfaces(Class<?> cls)
递归返回本类及所有基类继承的接口,及接口继承的接口,比Spring中的相同实现完整
|
static List<Class<?>> |
getAllSuperclasses(Class<?> cls)
递归返回所有的SupperClasses,包含Object.class
|
static <T> Class<T> |
getClassGenericType(Class clazz)
通过反射, 获得Class定义中声明的泛型参数的类型,
注意泛型必须定义在父类处.
|
static Class |
getClassGenericType(Class clazz,
int index)
通过反射, 获得Class定义中声明的父类的泛型参数的类型.
|
static String |
getPackageName(Class<?> cls)
返回PackageName
|
static String |
getPackageName(String className)
返回PackageName
|
static String |
getShortClassName(Class<?> cls)
返回短Class名, 不包含PackageName.
|
static String |
getShortClassName(String className)
返回Class名,不包含PackageName
内部类的话,返回"主类.内部类"
|
static boolean |
instanceOf(Class clazz,
Class target)
判断某个值对象是否是某个类对象
|
static boolean |
isSubClassOrInterfaceOf(Class subclass,
Class superclass)
https://github.com/linkedin/linkedin-utils/blob/master/org.linkedin.util-core/src/main/java/org/linkedin/util/reflect/ReflectUtils.java
The purpose of this method is somewhat to provide a better naming / documentation than the javadoc of
Class.isAssignableFrom method. |
static Class<?> |
unwrapCglib(Object instance)
获取CGLib处理过后的实体的原Class.
|
public static String getShortClassName(Class<?> cls)
内部类的话,返回"主类.内部类"
public static String getShortClassName(String className)
内部类的话,返回"主类.内部类"
public static List<Class<?>> getAllSuperclasses(Class<?> cls)
public static List<Class<?>> getAllInterfaces(Class<?> cls)
public static boolean isSubClassOrInterfaceOf(Class subclass, Class superclass)
The purpose of this method is somewhat to provide a better naming / documentation than the javadoc of
Class.isAssignableFrom method.
true if subclass is a subclass or sub interface of superclasspublic static <T> Class<T> getClassGenericType(Class clazz)
注意泛型必须定义在父类处. 这是唯一可以通过反射从泛型获得Class实例的地方.
如无法找到, 返回Object.class.
eg. public UserDao extends HibernateDao
clazz - The class to introspectpublic static Class getClassGenericType(Class clazz, int index)
注意泛型必须定义在父类处. 这是唯一可以通过反射从泛型获得Class实例的地方.
如无法找到, 返回Object.class.
如public UserDao extends HibernateDao
clazz - clazz The class to introspectindex - the Index of the generic declaration, start from 0.Copyright © 2019. All rights reserved.