百度百科在介紹某類(lèi)動(dòng)物時(shí)贱田,會(huì)用表格羅列該類(lèi)動(dòng)物相關(guān)的屬性威根,如下圖有關(guān)老虎的信息表格:
上圖的表格中是描述所有老虎類(lèi)動(dòng)物并不是描述某只老虎凤巨,同樣百度百科描述猴子類(lèi)動(dòng)物也使用上圖的表格形式來(lái)描述猴子類(lèi)動(dòng)物。
在Java中也是類(lèi)似情況洛搀,使用java.lang.Class類(lèi)的對(duì)象(如上圖的表格)來(lái)描述類(lèi)(包括抽象類(lèi)敢茁,接口,枚舉留美,數(shù)組和注解彰檬,好比老虎和猴子)。
java.lang.Class類(lèi)是java反射機(jī)制的核心,用于描述被加載到JVM中的類(lèi)(包括類(lèi)和接口谎砾,下同)的信息逢倍,加載到JVM中類(lèi)會(huì)生成該Class類(lèi)的對(duì)象,通過(guò)該對(duì)象可以獲得關(guān)于一個(gè)類(lèi)的相關(guān)信息,比如類(lèi)名景图,類(lèi)有哪有方法较雕,有哪些構(gòu)造方法,有哪些字段等。
獲得類(lèi)的Class對(duì)象有三種方式:
l類(lèi)對(duì)象的getClass方法
Date date = new Date();
Class c = date1.getClass();
l使用類(lèi)名.class屬性的方式
使用類(lèi)名加“.class”的方式即會(huì)返回與該類(lèi)對(duì)應(yīng)的Class對(duì)象亮蒋。例如:
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("類(lèi)名稱(chēng) ??" + class1.getName());
System.out.println("類(lèi)名稱(chēng) ??" + class2.getName());
System.out.println("類(lèi)名稱(chēng) ??" + class3.getName());
}
}