Class类的实例描述运行中Java应用程序的类和接口。一个Class类的实例可以描述所有Java的数据类型:类,接口,枚举,注解,数组基本数据类型和关键字void类型。
Class类没有public构造器。Class类的实例的创建是由JVM加载其字节码或通过调用类加载器调用时自动创建。Class类Java反射的核心.通过该类通过字符串类型名称动态创建实例和调用方法。
通常使用三种方式来获得Class对象。
方式一:对象名.getClass();
package string.lang.java;
import java.io.Serializable;
public class ClassDemo1 {
public static void main(String[] args) { fun(1); fun(2.3); fun("Hello"); fun(new java.util.Date()); fun(new Serializable() {}); } public static void fun(Object obj){ System.out.println(obj.getClass().getName()); }
}
|
运行的结果如下:
方式二:类型名.class;
package string.lang.java; public class ClassDemo2 { public static void main(String[] args) { System.out.println(String.class.getName()); System.out.println(Override.class.getName()); System.out.println(int.class.getName()); System.out.println(void.class.getName()); } }
|
运行的结果如下:
方式三:Class.forName(String classFullName);
package string.lang.java; public class ClassDemo3 { public static void main(String[] args) { try { Class clz=Class.forName("java.lang.String"); System.out.println(clz.getName()); } catch (ClassNotFoundException e) { e.printStackTrace(); } } }
|
运行的结果如下: