1. 程式人生 > >Java反射的三種實現方式

Java反射的三種實現方式

1 Foo foo = new Foo();

第一種:通過Object類的getClass方法

1 Class cla = foo.getClass();

第二種:通過物件例項方法獲取物件

1 Class cla = foo.class;

第三種:通過Class.forName方式

1 Class cla = Class.forName("xx.xx.Foo");

對於有空建構函式的類 可以直接用位元組碼檔案獲取例項:

1 Object o = clazz.newInstance();  // 會呼叫空參構造器 如果沒有則會報錯

對於沒有空的建構函式的類則需要先獲取到他的構造物件 在通過該構造方法類獲取例項:

1 2 3 Constroctor constroctor = clazz.getConstructor(String.class,int.class); // 獲取建構函式 Object obj = constroctor.newInstance("jack", 18); // 通過構造器物件的newInstance方法進行物件的初始化