1. 程式人生 > >通過Class類中的newInstance()和獲取getConstructor()有什麼區別?(反射)

通過Class類中的newInstance()和獲取getConstructor()有什麼區別?(反射)

通過反射操作構造方法建立物件:

步驟:

1.獲得Class物件

2獲得構造

3.通過構造物件獲得例項化物件

問題: 直接通過Class類中的newInstance()和獲取getConstructor()有什麼區別?

newInstance()方法, 只能通過空參的構造方法建立物件

getConstructor(Class<T>… parameterTypes)方法, 方法接受一個可變引數, 可以根據傳入的型別來匹配對應的構造方法

         總結

                   Constructor<?>[] getConstructors()


                   Constructor<T> getConstructor(Class<?>... parameterTypes) 
            
                     方法1: 獲取該類中所有的構造方法, 返回的是一個數組
                     方法2: 方法接受一個可變引數, 可以根據傳入的型別, 來匹配對應的構造方法