1. 程式人生 > 實用技巧 >反射之------獲得執行時類的指定構造方法以及建立物件的操作

反射之------獲得執行時類的指定構造方法以及建立物件的操作

package com.heima.userJSTL;

import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

public class GetConstrect {
    public static void main(String[] args) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
        
//獲取當前執行時類的指定構造器,並建立該構造器的物件(這種方法並不常用我們一般的使用的是直接通過 // 當前執行時類的靜態方法newInstance();直接建立一個物件,(底層還是使用的空參構造)) Class<Person> aClass = Person.class; Constructor<Person> declaredConstructor = aClass.getDeclaredConstructor(String.class);//構造方法不需要區分方法名,引數只需要形參列表 //暴力反射設定該構造器可以被訪問
declaredConstructor.setAccessible(true); Person person = declaredConstructor.newInstance("張三"); System.out.println(person); //但是我們常用的穿件物件的方法是直接使用當前執行時類的Class物件的.newInstance();方法進行建立物件 Person person1 = aClass.newInstance(); System.out.println(person1);
//使用當前執行時類的Class物件的.newInstance();方法的前提是: //1.必須要有空參構造器 //2.空參構造的許可權修飾符要夠,一般是public } }