想要了解反射生成class和創建java對象,首先我們要了解什么是反射?
一、什么是反射?
Java反射說的是在運行狀態中,對於任何一個類,我們都能夠知道這個類有哪些方法和屬性。對於任何一個對象,我們都能夠對它的方法和屬性進行調用。我們把這種動態獲取對象信息和調用對象方法的功能稱之為反射機制。
二、反射生成Class的三種方式
1.第一種方式(利用getClass()方法)

2.第二種方式(直接對象的.class)

3.第三種方式(Class.forName())

注意:此種方法通過對象的全路徑來獲取Class的,當對象不存在時,會出現ClassNotFoundException異常。詳細的可以看下Class.forName()的底層代碼。
三、反射生成java對象的兩種方式
1.第一種方式newInstance();
調用public無參構造器 ,若是沒有,則會報異常
Object o = clazz.newInstance();
沒有無參構造函數異常:

私有的構造函數異常:

2.第二種方式:
有帶參數的構造函數的類,先獲取到其構造對象,再通過該構造方法類獲取實例:
/ /獲取構造函數類的對象
Constroctor constroctor = User.class.getConstructor(String.class);
// 使用構造器對象的newInstance方法初始化對象
Object obj = constroctor.newInstance("name");

