Java 类



简介

Java Class 类实例代表运行中的 Java 应用程序中的类和接口。它没有公共构造函数。

类声明

以下是java.lang.Class类的声明:

public final class Class<T>
   extends Object
      implements Serializable, GenericDeclaration, Type, AnnotatedElement

类方法

序号 方法及描述
1 <U> Class<? extends U> asSubclass(Class<U> clazz)

此方法将此 Class 对象强制转换为代表由指定类对象表示的类的子类。

2 T cast(Object obj)

此方法将对象强制转换为由此 Class 对象表示的类或接口。

3 boolean desiredAssertionStatus()

此方法返回在调用此方法时初始化此类时将分配给此类的断言状态。

4 static Class<?> forName(String className)

此方法返回与具有给定字符串名称的类或接口关联的 Class 对象。

5 static Class<?> forName(String name, boolean initialize, ClassLoader loader)

此方法使用给定的类加载器返回与具有给定字符串名称的类或接口关联的 Class 对象。

6

<A extends Annotation> A getAnnotation(Class<A> annotationClass)

如果存在此类注释,此方法将返回此元素针对指定类型的注释;否则返回 null。

7 Annotation[] getAnnotations()

此方法返回此元素上存在的所有注释。

8 String getCanonicalName()

此方法返回根据 Java 语言规范定义的底层类的规范名称。

9 Class<?>[] getClasses()

此方法返回一个包含 Class 对象的数组,这些对象代表作为由此 Class 对象表示的类的成员的所有公共类和接口。

10 ClassLoader getClassLoader()

此方法返回类的类加载器。

11 Class<?> getComponentType()

此方法返回表示数组的组件类型的 Class。

12 Constructor<T> getConstructor(Class<?>... parameterTypes)

此方法返回一个 Constructor 对象,该对象反映由此 Class 对象表示的类的指定公共构造函数。

13 Constructor<?>[] getConstructors()

此方法返回一个包含 Constructor 对象的数组,这些对象反映由此 Class 对象表示的类的所有公共构造函数。

14

Annotation[] getDeclaredAnnotations()

此方法返回直接在此元素上存在的所有注释。

15 Class<?>[] getDeclaredClasses()

此方法返回一个 Class 对象数组,这些对象反映作为由此 Class 对象表示的类的成员声明的所有类和接口。

16 Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)

此方法返回一个 Constructor 对象,该对象反映由此 Class 对象表示的类或接口的指定构造函数。

17 Constructor<?>[] getDeclaredConstructors()

此方法返回一个 Constructor 对象数组,这些对象反映由此 Class 对象表示的类声明的所有构造函数。

18 Field getDeclaredField(String name)

此方法返回一个 Field 对象,该对象反映由此 Class 对象表示的类或接口的指定声明字段。

19 Field[] getDeclaredFields()

此方法返回一个 Field 对象数组,这些对象反映由此 Class 对象表示的类或接口声明的所有字段。

20 Method getDeclaredMethod(String name, Class<?>... parameterTypes)

此方法返回一个 Method 对象,该对象反映由此 Class 对象表示的类或接口的指定声明方法。

21 Method[] getDeclaredMethods()

此方法返回一个 Method 对象数组,这些对象反映由此 Class 对象表示的类或接口声明的所有方法。

22 Class<?> getDeclaringClass()

如果由此 Class 对象表示的类或接口是另一个类的成员,则返回表示其声明所在类的 Class 对象。

23 Class<?> getEnclosingClass()

此方法返回底层类的直接封闭类。

24 Constructor<?> getEnclosingConstructor()

如果此 Class 对象表示构造函数内的局部类或匿名类,则返回一个 Constructor 对象,该对象表示底层类的直接封闭构造函数。

25 Method getEnclosingMethod()

如果此 Class 对象表示方法内的局部类或匿名类,则返回一个 Method 对象,该对象表示底层类的直接封闭方法。

26 T[] getEnumConstants()

此方法返回此枚举类的元素;如果此 Class 对象不代表枚举类型,则返回 null。

27 Field getField(String name)

此方法返回一个 Field 对象,该对象反映由此 Class 对象表示的类或接口的指定公共成员字段。

28 Field[] getFields()

此方法返回一个包含 Field 对象的数组,这些对象反映由此 Class 对象表示的类或接口的所有可访问公共字段。

29 Type[] getGenericInterfaces()

此方法返回表示由此对象表示的类或接口直接实现的接口的 Type。

30 Type getGenericSuperclass()

此方法返回表示由此 Class 表示的实体(类、接口、基本类型或 void)的直接超类的 Type。

31 Class<?>[] getInterfaces()

此方法确定由此对象表示的类或接口实现的接口。

32 Method getMethod(String name, Class<?>... parameterTypes)

此方法返回一个 Method 对象,该对象反映由此 Class 对象表示的类或接口的指定公共成员方法。

33 Method[] getMethods()

此方法返回一个包含 Method 对象的数组,这些对象反映由此 Class 对象表示的类或接口的所有公共成员方法,包括由类或接口声明的方法以及从超类和超接口继承的方法。

34 int getModifiers()

此方法返回此类或接口的 Java 语言修饰符,编码为整数。

35 String getName()

此方法将由此 Class 对象表示的实体(类、接口、数组类、基本类型或 void)的名称作为字符串返回。

36 Package getPackage()

此方法获取此类的包。

37 ProtectionDomain getProtectionDomain()

此方法返回此类的 ProtectionDomain。

38 URL getResource(String name)

此方法查找具有给定名称的资源。

39 InputStream getResourceAsStream(String name)

此方法查找具有给定名称的资源。

40 Object[] getSigners()

此方法获取此类的签名者。

41 String getSimpleName()

此方法返回源代码中给出的底层类的简单名称。

42 Class<? super T> getSuperclass()

此方法返回表示由此 Class 表示的实体(类、接口、基本类型或 void)的超类的 Class。

43 TypeVariable<Class<T>>[] getTypeParameters()

此方法返回一个 TypeVariable 对象数组,这些对象按声明顺序表示由此 GenericDeclaration 对象表示的泛型声明声明的类型变量。

44

boolean isAnnotation()

如果此 Class 对象表示注释类型,则此方法返回 true。

45

boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)

如果此元素上存在针对指定类型的注释,则此方法返回 true;否则返回 false。

46 boolean isAnonymousClass()

当且仅当底层类是匿名类时,此方法返回 true。

47 boolean isArray()

此方法确定此 Class 对象是否表示数组类。

48 boolean isAssignableFrom(Class<?> cls)

此方法确定由此 Class 对象表示的类或接口是否与由指定的 Class 参数表示的类或接口相同,或者是否是其超类或超接口。

49 boolean isEnum()

当且仅当此类在源代码中声明为枚举时,此方法返回 true。

50 boolean isInstance(Object obj)

此方法确定指定的 Object 是否与由此 Class 表示的对象赋值兼容。

51 boolean isInterface()

此方法确定指定的 Class 对象是否表示接口类型。

52 boolean isLocalClass()

当且仅当底层类是局部类时,此方法返回 true。

53 boolean isMemberClass()

当且仅当底层类是成员类时,此方法返回 true。

54 boolean isPrimitive()

此方法确定指定的 Class 对象是否表示基本类型。

55 boolean isSynthetic()

如果此类是合成类,则此方法返回 true;否则返回 false。

56 T newInstance()

此方法创建由此 Class 对象表示的新类实例。

57 String toString()

此方法将对象转换为字符串。

继承的方法

此类继承自以下类的方法:

  • java.lang.Object

获取类名和将父类强制转换为子类示例

以下示例显示了 Class asSubclass() 方法的用法。我们创建了两个类,ClassDemo 及其子类 SubClass1。使用 getClass() 方法,我们打印了类名,然后使用 asSubClass 将父类强制转换为子类并获取其实例。

package com.tutorialspoint;

public class ClassDemo {

   public static void main(String[] args) {

     try {
         ClassDemo cls = new ClassDemo();
         ClassDemo subcls = new SubClass1(); 

         // class ClassDemo
         Class c = cls.getClass(); 
         System.out.println(c);

         // sub class SubClass1
         Class c1 = subcls.getClass();
         System.out.println(c1);

         // represent a subclass of the specified class object
         Class retval = c1.asSubclass(c);

         System.out.println(retval);
      } catch(ClassCastException e) {
         System.out.println(e.toString());
      }
   }
}

class SubClass1 extends ClassDemo {
   // sub class
} 

让我们编译并运行上述程序,这将产生以下结果:

class com.tutorialspoint.ClassDemo
class com.tutorialspoint.SubClass1
class com.tutorialspoint.SubClass1
广告