public class ClassUtil
extends java.lang.Object
| 构造器和说明 |
|---|
ClassUtil() |
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
equals(java.lang.Class<?> clazz,
java.lang.String className,
boolean ignoreCase)
指定类是否与给定的类名相同
|
static boolean |
exist(java.lang.String className)
判断类是否存在
|
static boolean |
exist(java.lang.String className,
java.lang.ClassLoader classLoader) |
static java.lang.Class<?> |
forName(java.lang.String name) |
static java.lang.Class<?> |
forName(java.lang.String name,
java.lang.ClassLoader classLoader) |
static <T> java.lang.Class<T> |
getClass(T obj)
获取对象的类型
|
static java.lang.Class<?>[] |
getClasses(java.lang.Object... objects)
获得对象数组的类数组
|
static java.lang.String |
getClassName(java.lang.Class<?> clazz,
boolean isSimple)
获取类名
类名并不包含“.class”这个扩展名 例如:ClassUtil这个类 isSimple为false: "com.xiaoleilu.hutool.util.ClassUtil" isSimple为true: "ClassUtil" |
static java.lang.String |
getClassName(java.lang.Object obj,
boolean isSimple)
获取类名
|
static java.lang.String |
getClassPath()
获得ClassPath,将编码后的中文路径解码为原字符
这个ClassPath路径会文件路径被标准化处理 |
static java.lang.String |
getClassPath(boolean isEncoded)
获得ClassPath,这个ClassPath路径会文件路径被标准化处理
|
static java.util.Set<java.lang.String> |
getClassPathResources()
获得ClassPath,不解码路径中的特殊字符(例如空格和中文)
|
static java.util.Set<java.lang.String> |
getClassPathResources(boolean isDecode)
获得ClassPath
|
static java.util.Set<java.lang.String> |
getClassPaths(java.lang.String packageName)
获得ClassPath,不解码路径中的特殊字符(例如空格和中文)
|
static java.util.Set<java.lang.String> |
getClassPaths(java.lang.String packageName,
boolean isDecode)
获得ClassPath
|
static java.net.URL |
getClassPathURL()
获得ClassPath URL
|
static java.lang.Class<?> |
getComponentType(java.lang.reflect.Type type) |
static java.lang.Object |
getDefaultValue(java.lang.Class<?> clazz)
获取指定类型分的默认值
默认值规则为: 1、如果为原始类型,返回0 2、非原始类型返回 null
|
static java.lang.Object[] |
getDefaultValues(java.lang.Class<?>... classes)
获得默认值列表
|
static java.lang.String[] |
getJavaClassPaths() |
static java.lang.String |
getPackage(java.lang.Class<?> clazz)
获得给定类所在包的名称
例如: com.xiaoleilu.hutool.util.ClassUtil =》 com.xiaoleilu.hutool.util |
static java.lang.String |
getPackagePath(java.lang.Class<?> clazz)
获得给定类所在包的路径
例如: com.xiaoleilu.hutool.util.ClassUtil =》 com/xiaoleilu/hutool/util |
static java.lang.Class<?> |
getTypeArgument(java.lang.Class<?> clazz)
获得给定类的第一个泛型参数
|
static java.lang.Class<?> |
getTypeArgument(java.lang.Class<?> clazz,
int index)
获得给定类的泛型参数
|
static boolean |
isAbstract(java.lang.Class<?> clazz)
是否为抽象类
|
static boolean |
isAllAssignableFrom(java.lang.Class<?>[] types1,
java.lang.Class<?>[] types2)
比较判断types1和types2两组类,如果types1中所有的类都与types2对应位置的类相同,或者是其父类或接口,则返回
true |
static boolean |
isAssignableFrom(java.lang.Class<?> type1,
java.lang.Class<?> type2)
判断type1自身或者父类 来自于 type2
|
static boolean |
isBasicType(java.lang.Class<?> clazz)
是否为基本类型, 包含基本类型的包装类
|
static boolean |
isNormalClass(java.lang.Class<?> clazz)
是否为标准的类
这个类必须: 1、非接口 2、非抽象类 3、非Enum枚举 4、非数组 5、非注解 6、非原始类型(int, long等) |
static boolean |
isPrimitiveWrapper(java.lang.Class<?> clazz)
是否为原始类型的包装类
|
static boolean |
isSimpleProperty(java.lang.Class<?> type)
是否为简单属性
isSimpleValueType(Class),以及判定数组中的元素类型 |
static boolean |
isSimpleValueType(java.lang.Class<?> type)
是否为简单值类型
a primitive or primitive wrapper, an enum, a String or other CharSequence, a Number, a Date, a URI, a URL, a Locale, or a Class.
|
static boolean |
isStatic(java.lang.reflect.Method method)
是否为静态方法
|
static <T> java.lang.Class<T> |
loadClass(java.lang.String className)
加载类并初始化
|
static <T> java.lang.Class<T> |
loadClass(java.lang.String className,
boolean isInitialized)
加载类
|
protected static java.lang.Class<?> |
resolveClass(java.lang.reflect.Type type) |
static java.lang.Class<?> |
resolvePrimitiveClassName(java.lang.String name)
名字 解析为 原始类型
|
static java.lang.Class<?> |
unWrap(java.lang.Class<?> clazz)
包装类转为原始类,非包装类返回原类
|
static java.lang.Class<?> |
wrap(java.lang.Class<?> clazz)
原始类转为包装类,非原始类返回原类
|
public static boolean equals(java.lang.Class<?> clazz,
java.lang.String className,
boolean ignoreCase)
clazz - 类className - 类名,可以是全类名(包含包名),也可以是简单类名(不包含包名)ignoreCase - 是否忽略大小写public static boolean exist(java.lang.String className)
public static boolean exist(java.lang.String className,
java.lang.ClassLoader classLoader)
public static java.lang.Class<?> forName(java.lang.String name)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionpublic static java.lang.Class<?> forName(java.lang.String name,
java.lang.ClassLoader classLoader)
throws java.lang.ClassNotFoundException
java.lang.ClassNotFoundExceptionpublic static java.lang.String[] getJavaClassPaths()
public static <T> java.lang.Class<T> getClass(T obj)
T - 类型obj - 对象public static java.lang.Class<?>[] getClasses(java.lang.Object... objects)
objects - 对象数组,如果数组中存在null元素,则此元素被认为是Object类型public static java.lang.String getClassName(java.lang.Object obj,
boolean isSimple)
obj - 获取类名对象isSimple - 是否简单类名,如果为true,返回不带包名的类名public static java.lang.String getClassName(java.lang.Class<?> clazz,
boolean isSimple)
isSimple为false: "com.xiaoleilu.hutool.util.ClassUtil" isSimple为true: "ClassUtil"
clazz - 类isSimple - 是否简单类名,如果为true,返回不带包名的类名public static java.util.Set<java.lang.String> getClassPathResources()
public static java.util.Set<java.lang.String> getClassPathResources(boolean isDecode)
isDecode - 是否解码路径中的特殊字符(例如空格和中文)public static java.util.Set<java.lang.String> getClassPaths(java.lang.String packageName)
packageName - 包名称public static java.util.Set<java.lang.String> getClassPaths(java.lang.String packageName,
boolean isDecode)
packageName - 包名称isDecode - 是否解码路径中的特殊字符(例如空格和中文)public static java.lang.String getClassPath()
public static java.lang.String getClassPath(boolean isEncoded)
isEncoded - 是否编码路径中的中文public static java.net.URL getClassPathURL()
public static java.lang.Object getDefaultValue(java.lang.Class<?> clazz)
1、如果为原始类型,返回0
2、非原始类型返回 null
clazz - 类public static java.lang.Object[] getDefaultValues(java.lang.Class<?>... classes)
classes - 值类型public static java.lang.String getPackage(java.lang.Class<?> clazz)
clazz - 类public static java.lang.String getPackagePath(java.lang.Class<?> clazz)
clazz - 类public static java.lang.Class<?> getTypeArgument(java.lang.Class<?> clazz)
clazz - 被检查的类,必须是已经确定泛型类型的类Classpublic static java.lang.Class<?> getTypeArgument(java.lang.Class<?> clazz,
int index)
clazz - 被检查的类,必须是已经确定泛型类型的类index - 泛型类型的索引号,既第几个泛型类型Classpublic static boolean isAllAssignableFrom(java.lang.Class<?>[] types1,
java.lang.Class<?>[] types2)
truetypes1 - 类组1types2 - 类组2public static boolean isAssignableFrom(java.lang.Class<?> type1,
java.lang.Class<?> type2)
type1 - 类type2 - 类2public static boolean isBasicType(java.lang.Class<?> clazz)
clazz - 类型public static boolean isPrimitiveWrapper(java.lang.Class<?> clazz)
clazz - 类型public static boolean isAbstract(java.lang.Class<?> clazz)
clazz - 类public static boolean isSimpleProperty(java.lang.Class<?> type)
isSimpleValueType(Class),以及判定数组中的元素类型
type - 待检测类型public static boolean isSimpleValueType(java.lang.Class<?> type)
a primitive or primitive wrapper, an enum, a String or other CharSequence, a Number, a Date, a URI, a URL, a Locale, or a Class.
type - 待检测类型public static boolean isStatic(java.lang.reflect.Method method)
method - 方法public static boolean isNormalClass(java.lang.Class<?> clazz)
1、非接口 2、非抽象类 3、非Enum枚举 4、非数组 5、非注解 6、非原始类型(int, long等)
clazz - 类public static <T> java.lang.Class<T> loadClass(java.lang.String className,
boolean isInitialized)
T - 对象类型className - 类名isInitialized - 是否初始化public static <T> java.lang.Class<T> loadClass(java.lang.String className)
T - 对象类型className - 类名public static java.lang.Class<?> resolvePrimitiveClassName(java.lang.String name)
name - 类名public static java.lang.Class<?> wrap(java.lang.Class<?> clazz)
clazz - 原始类public static java.lang.Class<?> unWrap(java.lang.Class<?> clazz)
clazz - 包装类public static java.lang.Class<?> getComponentType(java.lang.reflect.Type type)
protected static java.lang.Class<?> resolveClass(java.lang.reflect.Type type)