深入研究java.long.Class类
前言:Java的类库日益庞大,所包含的类和接口也不计其数。但其中有一些非常重要的类和接口,是Java类库中的核心部分。常见的有String、Object、Class、Collection、ClassLoader...,熟悉这些类是学好Java的基础。而这些类一般不容易理解,需要做深入的研究和实践才能掌握。下面是我对这些类理解和使用的一些总结。欢迎你在阅读后将你宝贵的意见和读后感留下!
一、如何得到Class的对象呢?有三种方法可以的获取:
二、Class类的常用方法 2、newInstance() 3、getClassLoader() 4、getComponentType() 5、getSuperclass() 6、isArray()
三、Class的一些使用技巧 2、虚拟机为每种类型管理一个独一无二的Class对象。因此可以使用==操作符来比较类对象。例如:
java.lang | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 方法摘要 | ||
|---|---|---|
|
asSubclass(Class<U> clazz) 强制转换该 Class 对象,以表示指定的 class 对象所表示的类的一个子类。 | |
T |
cast(Object obj) 将一个对象强制转换成此 Class 对象所表示的类或接口。 | |
boolean |
desiredAssertionStatus() 如果要在调用此方法时,将要初始化该类,则返回将分配给该类的断言状态。 | |
static Class<?> |
forName(String className) 返回与带有给定字符串名的类或接口相关联的 Class 对象。 | |
static Class<?> |
forName(String name, boolean initialize, ClassLoader loader) 使用给定的类加载器,返回与带有给定字符串名的类或接口相关联的 Class 对象。 | |
|
getAnnotation(Class<A> annotationClass) 如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。 | |
Annotation[] |
getAnnotations() 返回此元素上存在的所有注释。 | |
String |
getCanonicalName() 返回《Java Language Specification》中所定义的基础类的规范化名称。 | |
Class[] |
getClasses() 返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口,包括从超类和公共类继承的以及通过该类声明的公共类和接口成员。 | |
ClassLoader |
getClassLoader() 返回该类的类加载器。 | |
Class<?> |
getComponentType() 返回表示数组组件类型的 Class。 | |
Constructor<T> |
getConstructor(Class... parameterTypes) 返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。 | |
Constructor[] |
getConstructors() 返回一个包含某些 Constructor 对象的数组,这些对象反映此 Class 对象所表示的类的所有公共构造方法。 | |
Annotation[] |
getDeclaredAnnotations() 返回直接存在于此元素上的所有注释。 | |
Class[] |
getDeclaredClasses() 返回 Class 对象的一个数组,这些对象反映声明为此 Class 对象所表示的类的成员的所有类和接口,包括该类所声明的公共、保护、默认(包)访问及私有类和接口,但不包括继承的类和接口。 | |
Constructor<T> |
getDeclaredConstructor(Class... parameterTypes) 返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法。 | |
Constructor[] |
getDeclaredConstructors() 返回 Constructor 对象的一个数组,这些对象反映此 Class 对象表示的类声明的所有构造方法。 | |
Field |
getDeclaredField(String name) 返回一个 Field 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明字段。 | |
Field[] |
getDeclaredFields() 返回 Field 对象的一个数组,这些对象反映此 Class 对象所表示的类或接口所声明的所有字段,包括公共、保护、默认(包)访问和私有字段,但不包括继承的字段。 | |
Method |
getDeclaredMethod(String name, Class... parameterTypes) 返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。 | |
Method[] |
getDeclaredMethods() 返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。 | |
Class<?> |
getDeclaringClass() 如果此 Class 对象所表示的类或接口是另一个类的成员,则返回的 Class 对象表示该对象的声明类。 | |
Class<?> |
getEnclosingClass() 返回基础类的立即封闭类。 | |
Constructor<?> |
getEnclosingConstructor() 如果该 Class 对象表示构造方法中的一个本地或匿名类,则返回 Constructor 对象,它表示基础类的立即封闭构造方法。 | |
Method |
getEnclosingMethod() 如果此 Class 对象表示某一方法中的一个本地或匿名类,则返回 Method 对象,它表示基础类的立即封闭方法。 | |
T[] |
getEnumConstants() 如果此 Class 对象不表示枚举类型,则返回枚举类的元素或 null。 | |
Field |
getField(String name) 返回一个 Field 对象,它反映此 Class 对象所表示的类或接口的指定公共成员字段。 | |
Field[] |
getFields() 返回一个包含某些 Field 对象的数组,这些对象反映此 Class 对象所表示的类或接口的所有可访问公共字段。 | |
Type[] |
getGenericInterfaces() 返回表示某些接口的 Type,这些接口由此对象所表示的类或接口直接实现。 | |
Type |
getGenericSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type。 | |
Class[] |
getInterfaces() 确定此对象所表示的类或接口实现的接口。 | |
Method |
getMethod(String name, Class... parameterTypes) 返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。 | |
Method[] |
getMethods() 返回一个包含某些 Method 对象的数组,这些对象反映此 Class 对象所表示的类或接口(包括那些由该类或接口声明的以及从超类和超接口继承的那些的类或接口)的公共 member 方法。 | |
int |
getModifiers() 返回此类或接口以整数编码的 Java 语言修饰符。 | |
String |
getName() 以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。 | |
Package |
getPackage() 获取此类的包。 | |
ProtectionDomain |
getProtectionDomain() 返回该类的 ProtectionDomain。 | |
URL |
getResource(String name) 查找带有给定名称的资源。 | |
InputStream |
getResourceAsStream(String name) 查找具有给定名称的资源。 | |
Object[] |
getSigners() 获取此类的标记。 | |
String |
getSimpleName() 返回源代码中给出的基础类的简称。 | |
Class<? super T> |
getSuperclass() 返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class。 | |
TypeVariable<Class<T>>[] |
getTypeParameters() 按声明顺序返回 TypeVariable 对象的一个数组,这些对象表示用此 GenericDeclaration 对象所表示的常规声明来声明的类型变量。 | |
boolean |
isAnnotation() 如果此 Class 对象表示一个注释类型则返回 true。 | |
boolean |
isAnnotationPresent(Class<? extends Annotation> annotationClass) 如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。 | |
boolean |
isAnonymousClass() 当且仅当基础类是匿名类时返回 true。 | |
boolean |
isArray() 判定此 Class 对象是否表示一个数组类。 | |
boolean |
isAssignableFrom(Class<?> cls) 判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。 | |
boolean |
isEnum() 当且仅当该类声明为源代码中的枚举时返回 true。 | |
boolean |
isInstance(Object obj) 判定指定的 Object 是否与此 Class 所表示的对象赋值兼容。 | |
boolean |
isInterface() 判定指定的 Class 对象是否表示一个接口。 | |
boolean |
isLocalClass() 当且仅当基础类是本地类时返回 true。 | |
boolean |
isMemberClass() 当且仅当基础类是成员类时返回 true。 | |
boolean |
isPrimitive() 判定指定的 Class 对象是否表示一个基本类型。 | |
boolean |
isSynthetic() 如果此类是复合类,则返回 true,否则 false。 | |
T |
newInstance() 创建此 Class 对象所表示的类的一个新实例。 | |
String |
toString() 将对象转换为字符串。 | |
| 从类 java.lang.Object 继承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |



java.lang.Class<T>
leizhimin
博客统计信息
热门文章
最新评论
友情链接