当前位置: 首页 > 教程 > Java.lang >

Java.lang Class

精华
小牛编辑
134浏览
2023-03-14

1 Java.lang Class介绍

Java Class类实例表示正在运行的Java应用程序中的类和接口。每个属于一个类的数组都是一个Class对象,并且由所有数组共享(具有相同的元素类型和维数)。

2 Java.lang Class声明

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

3 Java.lang Class方法

方法 描述
<U> Class<? extends U> 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对象,使用给定的类加载器。
<A extends Annotation> A getAnnotation(Class<A> annotationClass) 此方法返回这个元素的注解指定类型,如果存在这样的注释,否则返回null。
Annotation[] getAnnotations() 此方法返回当前这个元素上的所有注释。
String getCanonicalName() 此方法返回底层类的Java语言规范中定义的标准名称。
Class<?>[] getClasses() 此方法返回一个包含代表所有的公共类,并且是此Class对象所表示的类的成员接口的Class对象的数组。
ClassLoader getClassLoader() 此方法返回类加载器的类。
Class<?> getComponentType() 此方法返回类表示数组的组件类型。
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对象表示一个构造函数中的一个本地或匿名类,则返回一个代表底层类的立即封闭构造函数构造对象。
Method getEnclosingMethod() 如果此Class对象表示的方法中的一个本地或匿名类,则返回一个代表底层类的立即封闭方法的Method对象。
T[] getEnumConstants() 此方法返回枚举类,如果此Class对象不表示枚举类型返回空元素。
Field getField(String name) 该方法返回一个Field对象,它反映此Class对象所表示的类或接口的指定公共成员字段。
Field[] getFields() 此方法返回一个包含Field对象反映此Class对象所表示的类或接口的所有可访问公共字段的数组。
Type[] getGenericInterfaces() 此方法返回表示由该对象表示的类或接口直接实现的接口类型。
Type getGenericSuperclass() 此方法返回表示此Class所表示的实体(类,接口,基本类型或void)的直接超类的类型。
Class<?>[] getInterfaces() 此方法确定由该对象表示的类或接口实现的接口。
Method getMethod(String name, Class<?>... parameterTypes) 该方法返回一个Method对象,它反映此Class对象所表示的类或接口的指定公共成员方法。
Method[] getMethods()

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

int getModifiers() 此方法返回Java语言修饰符为这个类或者接口,编码为一个整数。
String getName() 此方法返回此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)的超类。
TypeVariable<Class<T>>[]getTypeParameters() 此方法返回一个代表由GenericDeclaration对象表示的一般声明,在声明的顺序声明的类型变量TypeVariable对象的数组。
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) 此方法确定指定的对象赋值兼容与此Class所表示的对象。
boolean isInterface() 此方法判定指定Class对象表示一个接口类型。
boolean isLocalClass() 当且仅当底层类是局部类此方法返回true。
boolean isMemberClass() 当且仅当底层类是成员类此方法返回true。
boolean isPrimitive() 此方法确定指定的Class对象表示一个基本类型。
boolean isSynthetic() 如果这个类是合成的类此方法返回true;否则返回false。
T newInstance() 此方法创建此Class对象所表示类的新实例。
String toString() 此方法的对象转换为字符串。

4 Java.lang Class案例

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */
public class JavaClassExample1 {  
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {  
        // returns the Class object for the class with the given name  
        Class class1 = Class.forName("java.lang.String");  
        Class class2 = int.class;  
        System.out.print("Class represented by class1: ");  
        // applying toString method on class1  
        System.out.println(class1.toString());  
        System.out.print("Class represented by class2: ");  
        // applying toString() method on class2  
        System.out.println(class2.toString());  
        String s = "JavaTpoint";  
        int i = 10;  
  
        // checking for Class instance  
        boolean b1 = class1.isInstance(s);  
        boolean b2 = class1.isInstance(i);  
        System.out.println("is p instance of String : " + b1);  
        System.out.println("is j instance of String : " + b2);  
    }  
}  

输出结果为:

Class represented by class1: class java.lang.String
Class represented by class2: int
is p instance of String : true
is j instance of String : false