当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)

类 java.lang.Class

java.lang.Object
   |
   +----java.lang.Class

public final class Class
extends Object
implements Serializable

Class 类实例表示当前运行的 Java 应用程序中的类和接口。 每个数组均属于一个 Class 类对象,所有具有相同元素类型和维数的数组共享一个 Class 对象。基本的 Java 类型(boolean, byte, char, short, int, long, float 和 double) 和 void 类型也可表示为 Class 对象。

对于 Class 类,没有公共构造子。 当各类被调入时,由 Java 虚拟机自动创建 Class 对象,或通过类装载器中的 defineClass 方法生成。

以下示例使用 Class 对象显示一个对象的 Class 名:

void printClassName(Object obj) { System.out.println("The class of " + obj + " is " + obj.getClass().getName()); }

来自:
JDK1.0
参见:
defineClass

方法索引

forName(String)
返回给定串名相应的 Class 对象。
getClasses()
此方法未实现。
getClassLoader()
获取该类的类装载器。
getComponentType()
如果当前类表示一个数组,则返回表示该数组组件的 Class 对象,否则返回 null。
getConstructor(Class[])
返回当前 Class 对象表示的类的指定的公有构造子对象。
getConstructors()
返回当前 Class 对象表示的类的所有公有构造子对象数组。
getDeclaredClasses()
此方法未实现。
getDeclaredConstructor(Class[])
返回当前 Class 对象表示的类的指定已说明的一个构造子对象。
getDeclaredConstructors()
返回当前 Class 对象表示的类的所有已说明的构造子对象数组。
getDeclaredField(String)
返回当前 Class 对象表示的类或接口的指定已说明的一个域对象。
getDeclaredFields()
返回当前 Class 对象表示的类或接口的所有已说明的域对象数组。
getDeclaredMethod(String, Class[])
返回当前 Class 对象表示的类或接口的指定已说明的一个方法对象。
getDeclaredMethods()
返回 Class 对象表示的类或接口的所有已说明的方法数组。
getDeclaringClass()
此方法未实现。
getField(String)
返回当前 Class 对象表示的类或接口的指定的公有成员域对象。
getFields()
返回当前 Class 对象表示的类或接口的所有可访问的公有域对象数组。
getInterfaces()
返回当前对象表示的类或接口实现的接口。
getMethod(String, Class[])
返回当前 Class 对象表示的类或接口的指定的公有成员方法对象。
getMethods()
返回当前 Class 对象表示的类或接口的所有公有成员方法对象数组,包括已声明的和从父类继承的方法。
getModifiers()
返回该类或接口的 Java 语言修改器代码。
getName()
返回 Class 对象表示的类型(类、接口、数组或基类型)的完整路径名字符串。
getResource(String)
按指定名查找资源。
getResourceAsStream(String)
用给定名查找资源。
getSigners()
获取类标记。
getSuperclass()
如果此对象表示除 Object 外的任一类, 那么返回此对象的父类对象。
isArray()
如果 Class 对象表示一个数组则返回 true, 否则返回 false。
isAssignableFrom(Class)
判定 Class 对象表示的类或接口是否同参数指定的 Class 表示的类或接口相同,或是其父类。
isInstance(Object)
此方法是 Java 语言 instanceof 操作的动态等价方法。
isInterface()
判定指定的 Class 对象是否表示一个接口类型。
isPrimitive()
判定指定的 Class 对象是否表示一个 Java 的基类型。
newInstance()
创建类的新实例。
toString()
将对象转换为字符串。

方法

toString
 public String toString()
将对象转换为字符串。 字符串由 "class""interface"、一个空格和该类的完整路径名组成。如果当前 Class 对象表示一个基本类型,则返回基本类型名。

返回值:
表示当前类对象的字符串。
覆盖:
Object 中的 toString
forName
 public static native Class forName(String className) throws ClassNotFoundException
返回给定的字符串名对应的 Class 对象。 若给定一个类或接口的完整路径名,那么此方法将试图定位、装载和连接该类。若成功,返回该类对象。否则,抛出 ClassNotFoundException 异常。

例如,下面代码段返回名为 java.lang.Thread 的运行 Class 描述器。

参数:
className - 期望类的全路径名。
返回值:
指定名的 Class 描述器。
抛出: ClassNotFoundException
如果没有发现该类。
newInstance
 public native Object newInstance() throws InstantiationException, IllegalAccessException
创建类的一个实例。

返回值:
此对象表示的类的新分配的实例。效果与用一个空参数列表调用 new 相似。
抛出: IllegalAccessException
如果该类或初始化方法不可访问。
抛出: InstantiationException
如果应用程序试图实例化一个抽象类或接口,或由于某种原因导致实例化过程失败。
isInstance
 public native boolean isInstance(Object obj)
此方法是 Java 语言 instanceof 操作的动态等价方法。 如果指定的 Object 参数非空,且该类不生成 ClassCastException 异常的引用,则返回 true, 否则返回 false。

特别地,当该类表示一个已声明的类时,若指定的 Object 是该类(或其任一父类)的一个实例则返回 true,否则返回 false。若该类是一数组类,且指定的 Object 能通过转换运算、或转换运算的扩充引用,转换为一个数组对象,那么返回 true;否则返回 false。 若该类是接口类,如果指定的 Object 参数类或其任一父类实现了此接口则返回 true;否则返回 false。如果该类是基类型类,则返回 false。

参数:
obj - 检查的对象。
isAssignableFrom
 public native boolean isAssignableFrom(Class cls)
判定 Class 对象表示的类或接口是否同参数指定的 Class 表示的类或接口相同,或是其父类或父接口。 如果成立则返回 true,否则返回 false。若该类是基类型类,且指定的类参数恰为此类则返回 true,否则返回 false。

特别地,通过标别转换或其扩展引用,此方法将测试指定的 Class 参数表示的类型能否转换为当前 Class 对象表示的类型,关于更详细信息,请参看 The Java Language Specification 的 5.1.1 和 5.1.4 节。

抛出: NullPointerException
如果指定的类参数为 null。
isInterface
 public native boolean isInterface()
判定指定的 Class 对象是否表示一个接口。

返回值:
如果当前对象表示一个接口则为 true;否则为 false
isArray
 public native boolean isArray()
如果当前 Class 对象表示一个数组类型则返回 true, 否则返回 false。

isPrimitive
 public native boolean isPrimitive()
判定指定 Class 对象是否表示一个 Java 的基类型。

有九个预定义的类,表示八个基本类型和 void。这些类通过 Java 虚拟机创建,具有与其表示的基类型相同的名称,分别为 boolean, byte, char, short, int, long, float, double 和 void。

这些对象仅能通过下列公有的、静态的、最终的变量访问,这些对象也是使该方法返回 true 的仅有的类对象。

参见:
TYPE, TYPE, TYPE, TYPE, TYPE, TYPE, TYPE, TYPE, TYPE
getName
 public native String getName()
返回 Class 对象表示的类型(类、接口、数组或基类型)的完整路径名串。

返回值:
当前对象表示的类或接口的全路径名。
getClassLoader
 public native ClassLoader getClassLoader()
获取此类的类装载器。

返回值:
创建当前对象表示的类或接口的类装载器;如果没有创建此类的装载器则为 null
参见:
ClassLoader
getSuperclass
 public native Class getSuperclass()
如果当前对象表示除 Object 类外的任一类, 那么返回此对象的父类对象。

如果当前对象是 Object 类或表示一个接口则返回 null 。

返回值:
此类的父类。
getInterfaces
 public native Class[] getInterfaces()
返回此对象表示的类或接口实现的接口。

如果该对象表示一个类,则返回一个包含此类实现的所有接口的对象数组。数组中接口对象的顺序,与此类 implements 宣称子句中的接口顺序一致。

如果当前对象表示一个接口,则返回包含此接口扩充的所有接口对象的数组。数组中接口对象的顺序,与该接口 extends 声明子句中的接口名顺序一致。

如果此类或接口未实现接口,则返回长度为零的数组。

返回值:
该类实现的接口数组。
getComponentType
 public native Class getComponentType()
如果此类表示一个数组,则返回表示该数组组件的 Class 对象,否则返回 null。

参见:
Array
getModifiers
 public native int getModifiers()
返回该类或接口的 Java 语言修饰词代码。 修饰词由 Java 虚拟机的 public, protected, private, final, 和 interface 对应的常量组成;使用 Modifier 类的方法对它们译码。

Java 虚拟机规范 中定义了修饰词编码,如表 4.1。

参见:
Modifier
getSigners
 public native Object[] getSigners()
获取类标记。

getDeclaringClass
 public Class getDeclaringClass()
此方法未实现。

如果当前类或接口是另一类的成员,则返回此类 (它是 声明类)。如果此类或接口不是另一类的成员则返回 null。

getClasses
 public Class[] getClasses()
此方法未实现。

返回一个容纳 Class 对象的数组,它表示了所有的公有类和接口,这些类和接口是 Class 对象代表的类的成员。 包含从父类继承的公有接口类,和此类声明的公有类和接口成员。如果该类没有公有成员类和接口,或是基类型类,则返回长度为零的数组。

getFields
 public Field[] getFields() throws SecurityException
返回一个容纳 Field 对象的数组,该数组表示了 Class 代表的类或接口所有的可访问的公有域。如果该类或接口没有可访问的属性,或者它为数组类或基类型类,则返回长度为零的数组。

特殊地,如果此对象是类,则返回该类和其所有父类的公有域。如果是一接口,则返回该接口和其所有父类的域。 如果是数组或基类型,则返回一长度为 0 的数组。

此方法不影响数组类型的隐含长度域。用户代码应使用数组类的方法处理数组。

参看 The Java Language Specification 的 8.2 和 8.3 节。

抛出: SecurityException
如果拒绝访问此信息。
参见:
Field
getMethods
 public Method[] getMethods() throws SecurityException
返回一个容纳 Method 对象的数组,该数组表示了 Class 代表的类或者接口所有的公有 member 方法,包括已声明的和从父类继承的方法。 如果该类或接口没有公有成员方法,则返回长度为零的数组。

参看 The Java Language Specification 的 8.2 和 8.4 节。

抛出: SecurityException
如果拒绝访问此信息。
参见:
Method
getConstructors
 public Constructor[] getConstructors() throws SecurityException
返回一个容纳 Constructor 对象的数组,它表示该 Class 对象代表的类的所有公有构造子。如果该类没有公有构造子,则返回一长度为零的数组。

抛出: SecurityException
如果拒绝访问此信息。
参见:
Constructor
getField
 public Field getField(String name) throws NoSuchFieldException, SecurityException
返回一个 Field 对象,它表示该 Class 对象代表的类或接口的指定的公有成员域。name 参数是一个 String ,它指定所要域的简单名。

用给定名,查询该类或接口的所有成员域,返回对应的公有域。

参看 The Java Language Specification 的 8.2 和 8.3 节。

抛出: NoSuchFieldException
如果找不到给定名域。
抛出: SecurityException
如果拒绝访问此信息。
参见:
Field
getMethod
 public Method getMethod(String name,
                         Class parameterTypes[]) throws NoSuchMethodException, SecurityException
返回一个 Method 对象,它表示 Class 对象代表的类或接口的指定的公有成员方法。name 参数是一个 String ,它指定所要方法的简单名称,,parameterTypes 是识别此方法形参类型的 Class 对象的数组,形参以声明的顺序存放在此数组中。

用给定名和形参,查询该类或接口的所有成员方法,返回对应的公有方法。

参看 The Java Language Specification 的 8.2 和 8.4 节。

抛出: NoSuchMethodException
如果找不到一个匹配方法。
抛出: SecurityException
如果拒绝访问此信息。
参见:
Method
getConstructor
 public Constructor getConstructor(Class parameterTypes[]) throws NoSuchMethodException, SecurityException
返回 Class 对象表示的类的指定公有构造子对象。 parameterTypes 是识别此构造子形参类型的对象类的数组,形参以声明的顺序存放在此数组中。

用恰当的形参,查询该类的所有构造子,返回对应的公有构造子。

抛出: NoSuchMethodException
如果找不到一个匹配方法。
抛出: SecurityException
如果拒绝访问此信息。
参见:
Constructor
getDeclaredClasses
 public Class[] getDeclaredClasses() throws SecurityException
此方法未实现。

返回一个容纳 Method 对象的数组,它表示被声明为 Class 对象代表的类的成员的所有类和接口。 包括该类已声明的公有的、保护的、缺省(包)访问的和私有的类和接口,不包括继承的类和接口。如果该类没有声明的成员类和接口,或者此类是基类型类,则返回长度为零的数组。

抛出: SecurityException
如果拒绝访问此信息。
getDeclaredFields
 public Field[] getDeclaredFields() throws SecurityException
返回一个容纳 Field 对象的数组,它表示了 Class 对象代表的的类或接口的声明的所有域。 包括公有的、保护的、缺省(包)访问的和私有的域,不包括继承域。 如果该类或接口没有声明域,或者此类是基类型类,则返回长度为零的数组。 参看 The Java Language Specification 的 8.2 和 8.3 节。

抛出: SecurityException
如果拒绝访问此信息。
参见:
Field
getDeclaredMethods
 public Method[] getDeclaredMethods() throws SecurityException
返回一个容纳 Method 对象的数组,它表示 Class 对象代表的类或接口声明的所有方法。 包括公有的、保护的、缺省(包)访问的和私有的方法,不包括继承的方法。 如果该类或接口没有声明方法,或者此类是基类型类,则返回长度为零的数组。

参看 The Java Language Specification 的 8.2 节。

抛出: SecurityException
如果拒绝访问此信息。
参见:
Method
getDeclaredConstructors
 public Constructor[] getDeclaredConstructors() throws SecurityException
返回该类所有已说明的构造子对象数组。 它们是公有的、保护的、缺省(包)访问的和私有的构造子。如果该类是接口类或基类型类,则返回长度为零的数组。

参看 The Java Language Specification 的 8.2 节。

抛出: SecurityException
如果拒绝访问此信息。
参见:
Constructor
getDeclaredField
 public Field getDeclaredField(String name) throws NoSuchFieldException, SecurityException
返回一个容纳 Method 对象的数组,它表示 Class 对象代表的类或接口的指定的已声明的域。。 name 参数是一个 String, 指定所要域的名称。

抛出: NoSuchFieldException
如果找不到给定名域。
抛出: SecurityException
如果拒绝访问此信息。
参见:
Field
getDeclaredMethod
 public Method getDeclaredMethod(String name,
                                 Class parameterTypes[]) throws NoSuchMethodException, SecurityException
返回一个 Method 对象,它表示该 Class 对象代表的类或接口的指定的已声明的方法。 name 参数是一个 String ,它指定所要方法的简单名称,parameterTypes 是识别此方法形参类型的对象类的数组,形参以声明的顺序存放在此数组中。

抛出: NoSuchMethodException
如果找不到一个匹配方法。
抛出: SecurityException
如果拒绝访问此信息。
参见:
Method
getDeclaredConstructor
 public Constructor getDeclaredConstructor(Class parameterTypes[]) throws NoSuchMethodException, SecurityException
返回一个 Construcor 对象,它表示该 Class 对象代表的类或接口的指定的已声明的构造子。 parameterTypes 是识别此构造子形参类型的对象类的数组,形参以声明的顺序存放在此数组中。

抛出: NoSuchMethodException
如果找不到一个匹配方法。
抛出: SecurityException
如果拒绝访问此信息。
参见:
Constructor
getResourceAsStream
 public InputStream getResourceAsStream(String name)
用给定名查找资源。 若没有相应的资源,则返回 null。此类的 ClassLoader 实现了查找给定类相关的资源的规则。

使用名称转换运算:如果资源名以 "/" 开始则不作变换,否则将 "." 转换为“/ ”,且追加包名。转换后 Class 方法替换 ClassLoader 方法。

参数:
name - 查找的资源串
返回值:
具有给定名的 InputStream 对象,若找不到此资源,则为null
参见:
ClassLoader, getResource
getResource
 public URL getResource(String name)
按指定名查找资源。 此类的装载类实现了查找给定类相关的资源的规则。

使用名称转换运算之后 Class 方法将替换 ClassLoader 方法。名称转换运算规则为:如果资源名以 "/" 开始则不作变换,否则将 "." 转换为 "/ ",且追加包名。

参数:
name - 查找的资源串
返回值:
具有给定名的 URL 对象,若找不到此资源,则为null
参见:
ClassLoader, getResourceAsStream

当前位置 类层次(JDK) 所有类(JDK) 所有域和方法(JDK)