Java反射機制

Java反射機制

在運行狀態中
對於任意一個類,都能知道這個類的所有屬性和方法
對於任意一個對象,都能調用它的任意屬性和方法
這種動態獲取信息以及動態調用對象方法的功能稱爲Java語言的反射機制

Class類

Class類是Java反射機制的根源。想要獲得一個類的方法屬性,首先就要獲取這個類的類類對象。

獲取類類對象有三種方法

package testAB;
/**
 * Java反射機制
 * @author lxw
 *
 */
public class Java_reflect {

    public static void main(String[] args) throws Exception {
        Car car = new Car();
        //通過類名獲取類類對象
        Class c1 = Car.class;
        //通過實例獲取類類對象
        Class c2 = car.getClass();
        //通過類類方法forName("類的路徑")
        Class c3 = null;
        try {
            c3 = Class.forName("testAB.Car");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        System.out.println(c1 == c2);//true
        System.out.println(c2 == c3);//true
        System.out.println(c1 == c3);//true

        /**
         * 類類對象使用方法
         */
        //獲取類類對象名稱
        System.out.println(c1.getName());
        //獲取類類對象的公有方法
        c1.getMethods();
        //獲取類類對象實例
        Car car1 = (Car)c1.newInstance();
        car1.run();
        //獲取構造方法
        c1.getConstructors();
        //獲取類類對象屬性
        Field[] fields = c1.getFields();
        for(Field field :fields){
            //成員屬性的類型
            Class type = field.getType();
        }
    }

}
class Car{
    String car_Name;
    public void run(){
        System.out.println("Car run...");
    }
}
發佈了91 篇原創文章 · 獲贊 27 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章