JavaTM 2 Platform
Standard Ed. 5.0

类 java.lang.Class
的使用

使用 Class 的软件包
java.lang 提供利用 Java 编程语言进行程序设计的基础类。 
java.lang.annotation 为 Java 编程语言注释设施提供库支持。 
java.lang.instrument 提供允许 Java 编程语言代理监测运行在 JVM 上的程序的服务。 
java.lang.management 提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 
java.lang.reflect 提供类和接口,以获取关于类和对象的反射信息。 
java.util 包含集合框架、遗留的 collection 类、事件模型、日期和时间设施、国际化和各种实用工具类(字符串标记生成器、随机数生成器和位数组)。 
java.util.concurrent.atomic 类的小工具包,支持在单个变量上解除锁定的线程安全编程。 
java.util.prefs 此包允许应用程序存储并检索用户和系统首选项和配置数据。 
 

java.langClass 的使用
 

声明为 Classjava.lang 中的字段
static Class<Boolean> Boolean.TYPE
          表示基本类型 boolean 的 Class 对象。
static Class<Character> Character.TYPE
          表示基本类型 charClass 实例。
static Class<Float> Float.TYPE
          表示 float 基本类型的 Class 实例。
static Class<Double> Double.TYPE
          表示基本类型 doubleClass 实例。
static Class<Byte> Byte.TYPE
          表示基本类型 byteClass 实例。
static Class<Short> Short.TYPE
          表示基本类型 shortClass 实例。
static Class<Integer> Integer.TYPE
          表示基本类型 intClass 实例。
static Class<Long> Long.TYPE
          表示基本类型 longClass 实例。
static Class<Void> Void.TYPE
          代表基本的 Java 类型 void 的 Class 对象。
 

返回 Classjava.lang 中的方法
<U> Class<? extends U>
Class.asSubclass(Class<U> clazz)
          强制转换该 Class 对象,以表示指定的 class 对象所表示的类的一个子类。
protected  Class<?> SecurityManager.currentLoadedClass()
          已过时。 建议不使用该类安全检查。建议使用 checkPermission 调用。
protected  Class<?> ClassLoader.defineClass(byte[] b, int off, int len)
          已过时。 defineClass(String, byte[], int, int) 取代
protected  Class<?> ClassLoader.defineClass(String name, byte[] b, int off, int len)
          将一个字节数组转换为 Class 类的实例。
protected  Class<?> ClassLoader.defineClass(String name, byte[] b, int off, int len, java.security.ProtectionDomain protectionDomain)
          使用可选的 ProtectionDomain 将一个字节数组转换为 Class 类的实例。
protected  Class<?> ClassLoader.defineClass(String name, java.nio.ByteBuffer b, java.security.ProtectionDomain protectionDomain)
          使用可选的 ProtectionDomainByteBuffer 转换为 Class 类的实例。
 Class<? extends Enum> EnumConstantNotPresentException.enumType()
          返回缺少的枚举常量的类型。
protected  Class<?> ClassLoader.findClass(String name)
          使用指定的二进制名称查找类。
protected  Class<?> ClassLoader.findLoadedClass(String name)
          如果 Java 虚拟机已将此加载器记录为具有给定二进制名称的某个类的启动加载器,则返回该二进制名称的类。
protected  Class<?> ClassLoader.findSystemClass(String name)
          查找具有指定的二进制名称的类,必要时加载它。
static Class<?> Class.forName(String className)
          返回与带有给定字符串名的类或接口相关联的 Class 对象。
static Class<?> Class.forName(String name, boolean initialize, ClassLoader loader)
          使用给定的类加载器,返回与带有给定字符串名的类或接口相关联的 Class 对象。
 Class<? extends Object> Object.getClass()
          返回一个对象的运行时类。
protected  Class[] SecurityManager.getClassContext()
          以类数组的形式返回当前执行堆栈。
 Class[] Class.getClasses()
          返回一个包含某些 Class 对象的数组,这些对象表示属于此 Class 对象所表示的类的成员的所有公共类和接口,包括从超类和公共类继承的以及通过该类声明的公共类和接口成员。
 Class<?> Class.getComponentType()
          返回表示数组组件类型的 Class
 Class[] Class.getDeclaredClasses()
          返回 Class 对象的一个数组,这些对象反映声明为此 Class 对象所表示的类的成员的所有类和接口,包括该类所声明的公共、保护、默认(包)访问及私有类和接口,但不包括继承的类和接口。
 Class<?> Class.getDeclaringClass()
          如果此 Class 对象所表示的类或接口是另一个类的成员,则返回的 Class 对象表示该对象的声明类。
 Class<E> Enum.getDeclaringClass()
          返回与此枚举常量的枚举类型相对应的 Class 对象。
 Class<?> Class.getEnclosingClass()
          返回基础类的立即封闭类。
 Class[] Class.getInterfaces()
          确定此对象所表示的类或接口实现的接口。
 Class<? super T> Class.getSuperclass()
          返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的超类的 Class
 Class<?> ClassLoader.loadClass(String name)
          使用指定的二进制名称来加载类。
protected  Class<?> ClassLoader.loadClass(String name, boolean resolve)
          使用指定的二进制名称来加载类。
 

参数类型为 Classjava.lang 中的方法
<U> Class<? extends U>
Class.asSubclass(Class<U> clazz)
          强制转换该 Class 对象,以表示指定的 class 对象所表示的类的一个子类。
 void SecurityManager.checkMemberAccess(Class<?> clazz, int which)
          如果不允许调用线程访问程序,则抛出 SecurityException
static boolean Compiler.compileClass(Class<?> clazz)
          编译指定的类。
<A extends Annotation>
A
Class.getAnnotation(Class<A> annotationClass)
          如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
<A extends Annotation>
A
Package.getAnnotation(Class<A> annotationClass)
           
 Constructor<T> Class.getConstructor(Class... parameterTypes)
          返回一个 Constructor 对象,它反映此 Class 对象所表示的类的指定公共构造方法。
 Constructor<T> Class.getDeclaredConstructor(Class... parameterTypes)
          返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法。
 Method Class.getDeclaredMethod(String name, Class... parameterTypes)
          返回一个 Method 对象,该对象反映此 Class 对象所表示的类或接口的指定已声明方法。
 Method Class.getMethod(String name, Class... parameterTypes)
          返回一个 Method 对象,它反映此 Class 对象所表示的类或接口的指定公共成员方法。
 boolean Class.isAnnotationPresent(Class<? extends Annotation> annotationClass)
          如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。
 boolean Package.isAnnotationPresent(Class<? extends Annotation> annotationClass)
           
 boolean Class.isAssignableFrom(Class<?> cls)
          判定此 Class 对象所表示的类或接口与指定的 Class 参数所表示的类或接口是否相同,或是否是其超类或超接口。
protected  void ClassLoader.resolveClass(Class<?> c)
          链接指定的类。
protected  void ClassLoader.setSigners(Class<?> c, Object[] signers)
          设置类的签署者。
static
<T extends Enum<T>>
T
Enum.valueOf(Class<T> enumType, String name)
          返回带指定名称的指定枚举类型的枚举常量。
 

参数类型为 Classjava.lang 中的构造方法
EnumConstantNotPresentException(Class<? extends Enum> enumType, String constantName)
          为指定常量构造一个 EnumConstantNotPresentException
 

java.lang.annotationClass 的使用
 

返回 Classjava.lang.annotation 中的方法
 Class<? extends Annotation> Annotation.annotationType()
          返回此 annotation 的注释类型。
 Class<? extends Annotation> IncompleteAnnotationException.annotationType()
          返回带有缺少元素的注释类型的 Class 对象。
 

参数类型为 Classjava.lang.annotation 中的构造方法
IncompleteAnnotationException(Class<? extends Annotation> annotationType, String elementName)
          构造一个指示指定注释类型中缺少指定元素的 IncompleteAnnotationException。
 

java.lang.instrumentClass 的使用
 

返回 Classjava.lang.instrument 中的方法
 Class[] Instrumentation.getAllLoadedClasses()
          返回当前由 JVM 加载的所有类的数组。
 Class<?> ClassDefinition.getDefinitionClass()
          返回该类。
 Class[] Instrumentation.getInitiatedClasses(ClassLoader loader)
          返回所有类的数组,loader 是类的初始化加载器。
 

参数类型为 Classjava.lang.instrument 中的方法
 byte[] ClassFileTransformer.transform(ClassLoader loader, String className, Class<?> classBeingRedefined, java.security.ProtectionDomain protectionDomain, byte[] classfileBuffer)
          实现此方法可以转换提供的类文件,并返回一个新的替换类文件。
 

参数类型为 Classjava.lang.instrument 中的构造方法
ClassDefinition(Class<?> theClass, byte[] theClassFile)
          使用提供的类和类文件字节创建一个新的 ClassDefinition 绑定。
 

java.lang.managementClass 的使用
 

参数类型为 Classjava.lang.management 中的方法
static
<T> T
ManagementFactory.newPlatformMXBeanProxy(javax.management.MBeanServerConnection connection, String mxbeanName, Class<T> mxbeanInterface)
          返回用于给定 MXBean 名称的平台 MXBean 接口的代理,以便通过给定 MBeanServerConnection 转发其方法调用。
 

java.lang.reflectClass 的使用
 

返回 Classjava.lang.reflect 中的方法
 Class Member.getDeclaringClass()
          返回表示声明由此 Member 表示的成员或构造方法的类或接口的 Class 对象。
 Class<?> Field.getDeclaringClass()
          返回表示类或接口的 Class 对象,该类或接口声明由此 Field 对象表示的字段。
 Class<?> Method.getDeclaringClass()
          返回表示声明由此 Method 对象表示的方法的类或接口的 Class 对象。
 Class<T> Constructor.getDeclaringClass()
          返回 Class 对象,该对象表示声明由此 Constructor 对象表示的构造方法的类。
 Class<?>[] Method.getExceptionTypes()
          返回 Class 对象的数组,这些对象描述了声明将此 Method 对象表示的基础方法抛出的异常类型。
 Class<?>[] Constructor.getExceptionTypes()
          返回一组表示声明要抛出的异常类型的 Class 对象,这些异常是由此 Constructor 对象表示的基础构造方法抛出的。
 Class<?>[] Method.getParameterTypes()
          按照声明顺序返回 Class 对象的数组,这些对象描述了此 Method 对象所表示的方法的形参类型。
 Class<?>[] Constructor.getParameterTypes()
          按照声明顺序返回一组 Class 对象,这些对象表示此 Constructor 对象所表示构造方法的形参类型。
static Class<?> Proxy.getProxyClass(ClassLoader loader, Class<?>... interfaces)
          返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。
 Class<?> Method.getReturnType()
          返回一个 Class 对象,该对象描述了此 Method 对象所表示的方法的正式返回类型。
 Class<?> Field.getType()
          返回一个 Class 对象,它标识了此 Field 对象所表示字段的声明类型。
 

参数类型为 Classjava.lang.reflect 中的方法
<T extends Annotation>
T
AnnotatedElement.getAnnotation(Class<T> annotationType)
          如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
<T extends Annotation>
T
AccessibleObject.getAnnotation(Class<T> annotationClass)
           
<T extends Annotation>
T
Field.getAnnotation(Class<T> annotationClass)
           
<T extends Annotation>
T
Method.getAnnotation(Class<T> annotationClass)
           
<T extends Annotation>
T
Constructor.getAnnotation(Class<T> annotationClass)
           
static Class<?> Proxy.getProxyClass(ClassLoader loader, Class<?>... interfaces)
          返回代理类的 java.lang.Class 对象,并向其提供类加载器和接口数组。
 boolean AnnotatedElement.isAnnotationPresent(Class<? extends Annotation> annotationType)
          如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。
 boolean AccessibleObject.isAnnotationPresent(Class<? extends Annotation> annotationClass)
           
static boolean Proxy.isProxyClass(Class<?> cl)
          当且仅当指定的类通过 getProxyClass 方法或 newProxyInstance 方法动态生成为代理类时,返回 true。
static Object Array.newInstance(Class<?> componentType, int length)
          创建一个具有指定的组件类型和长度的新数组。
static Object Array.newInstance(Class<?> componentType, int[] dimensions)
          创建一个具有指定的组件类型和维度的新数组。
static Object Proxy.newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h)
          返回一个指定接口的代理类实例,该接口可以将方法调用指派到指定的调用处理程序。
 

java.utilClass 的使用
 

返回 Classjava.util 中的方法
 Class<?> IllegalFormatConversionException.getArgumentClass()
          返回不匹配参数的类。
 

参数类型为 Classjava.util 中的方法
static
<E extends Enum<E>>
EnumSet<E>
EnumSet.allOf(Class<E> elementType)
          创建一个包含指定元素类型的所有元素的枚举 set。
static
<E> Collection<E>
Collections.checkedCollection(Collection<E> c, Class<E> type)
          返回指定 collection 的一个动态类型安全视图。
static
<E> List<E>
Collections.checkedList(List<E> list, Class<E> type)
          返回指定列表的一个动态类型安全视图。
static
<K,V> Map<K,V>
Collections.checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType)
          返回指定映射的一个动态类型安全视图。
static
<K,V> Map<K,V>
Collections.checkedMap(Map<K,V> m, Class<K> keyType, Class<V> valueType)
          返回指定映射的一个动态类型安全视图。
static
<E> Set<E>
Collections.checkedSet(Set<E> s, Class<E> type)
          返回指定 set 的一个动态类型安全视图。
static
<K,V> SortedMap<K,V>
Collections.checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType)
          返回指定有序映射的一个动态类型安全视图。
static
<K,V> SortedMap<K,V>
Collections.checkedSortedMap(SortedMap<K,V> m, Class<K> keyType, Class<V> valueType)
          返回指定有序映射的一个动态类型安全视图。
static
<E> SortedSet<E>
Collections.checkedSortedSet(SortedSet<E> s, Class<E> type)
          返回指定有序 set 的一个动态类型安全视图。
static
<E extends Enum<E>>
EnumSet<E>
EnumSet.noneOf(Class<E> elementType)
          创建一个具有指定元素类型的空枚举 set。
 

参数类型为 Classjava.util 中的构造方法
EnumMap(Class<K> keyType)
          创建一个具有指定键类型的空枚举映射。
IllegalFormatConversionException(char c, Class<?> arg)
          使用不匹配转换和相应参数类构造此类的实例。
 

java.util.concurrent.atomicClass 的使用
 

参数类型为 Classjava.util.concurrent.atomic 中的方法
static
<U,W> AtomicReferenceFieldUpdater<U,W>
AtomicReferenceFieldUpdater.newUpdater(Class<U> tclass, Class<W> vclass, String fieldName)
          使用给定的字段为对象创建一个更新程序。
static
<U,W> AtomicReferenceFieldUpdater<U,W>
AtomicReferenceFieldUpdater.newUpdater(Class<U> tclass, Class<W> vclass, String fieldName)
          使用给定的字段为对象创建一个更新程序。
static
<U> AtomicLongFieldUpdater<U>
AtomicLongFieldUpdater.newUpdater(Class<U> tclass, String fieldName)
          使用给定的字段为对象创建一个更新程序。
static
<U> AtomicIntegerFieldUpdater<U>
AtomicIntegerFieldUpdater.newUpdater(Class<U> tclass, String fieldName)
          使用给定字段为对象创建一个更新程序。
 

java.util.prefsClass 的使用
 

参数类型为 Classjava.util.prefs 中的方法
static Preferences Preferences.systemNodeForPackage(Class<?> c)
          从系统首选项树(根据约定,它与指定类的包相关联)返回首选项节点。
static Preferences Preferences.userNodeForPackage(Class<?> c)
          从调用用户首选项树(根据约定,它与指定类的包相关联)返回首选项节点。
 


JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策