百度百科在介绍某类动物时,会用表格罗列该类动物相关的属性,如下图有关老虎的信息表格:
上图的表格中是描述所有老虎类动物并不是描述某只老虎,同样百度百科描述猴子类动物也使用上图的表格形式来描述猴子类动物。
在Java中也是类似情况,使用java.lang.Class类的对象(如上图的表格)来描述类(包括抽象类,接口,枚举,数组和注解,好比老虎和猴子)。
java.lang.Class类是java反射机制的核心,用于描述被加载到JVM中的类(包括类和接口,下同)的信息,加载到JVM中类会生成该Class类的对象,通过该对象可以获得关于一个类的相关信息,比如类名,类有哪有方法,有哪些构造方法,有哪些字段等。
获得类的Class对象有三种方式:
l类对象的getClass方法
Date date = new Date();
Class c = date1.getClass();
l使用类名.class属性的方式
使用类名加“.class”的方式即会返回与该类对应的Class对象。例如:
Classc=Date.class;
l使用Class.forName方法
Class c=Class.forName(“java.util.Date”)
,
示例:
public class Test {
public static void main(String[] args) throws Exception {
Class class1 = null;
Class class2 = null;
Class class3 = null;
class1 = Class.forName("java.util.Date");
class2 = new java.util.Date().getClass();
class3 = java.util.Date.class;
System.out.println("类名称 " + class1.getName());
System.out.println("类名称 " + class2.getName());
System.out.println("类名称 " + class3.getName());
}
}