1. 程式人生 > 其它 >Java學習課程之建立執行時類的物件

Java學習課程之建立執行時類的物件

[問題]有了Class物件,能做什麼?

建立類的物件:呼叫Class物件的newInstance()方法

要 求:

1)類必須有一個無引數的構造器。

2)類的構造器的訪問許可權需要足夠。

難道沒有無參的構造器就不能建立物件了嗎?

不是!只要在操作的時候明確的呼叫類中的構造器,並將引數傳遞進去之後,才可以例項化操作。步驟如下:

1)通過Class類的getDeclaredConstructor(Class … parameterTypes)取得本類的指定形參型別的構造器

2)向構造器的形參中傳遞一個物件陣列進去,裡面包含了構造器中所需的各個引數。

3)在Constructor類中存在一個方法:

Public T newInstance(Object … initargs);

以上是反射機制用的最多的地方

//1.根據全類名獲取對應的Class物件

String name = “atguigu.java.Person”;

Class clazz = null;

clazz = Class.forName(name);

//2.呼叫指定引數結構的構造器,生成Constructor的例項

Constructor con = clazz.getConstructor(String.class,Integer.class);

//3.通過Constructor的例項建立對應類的物件,並初始化類屬性

Person p2 = (Person) con.newInstance(“Peter”,20);

System.out.println(p2);