反射獲取帶參數的構造方法


Constructor

Class類的newInstance()方法是使用該類無參的構造函數創建對象, 如果一個類沒有無參的構造函數, 就不能這樣創建了,可以調用Class類的getConstructor(String.class,int.class)方法獲取一個指定的構造函數然后再調用Constructor類的newInstance("張三",20)方法創建對象

import java.lang.reflect.Constructor;
import com.loaderman.bean.Person;

public class Demo_Constructor {

  /**
   Class類的newInstance()方法是使用該類無參的構造函數創建對象, 如果一個類沒有無參的構造函數,
   就不能這樣創建了,可以調用Class類的getConstructor
   (String.class,int.class)方法獲取一個指定的構造函數然后再調用Constructor類的newInstance
   ("張三",20)方法創建對象
    @throws Exception
 */
    public static void main(String[] args) throws Exception {
       Class clazz = Class.forName("com.loaderman.bean.Person");
        //Person p = (Person) clazz.newInstance();          通過無參構造創建對象
        //System.out.println(p);
        Constructor c = clazz.getConstructor(String.class,int.class);//獲取有參構造
        Person p = (Person) c.newInstance("張三",23);         //通過有參構造創建對象
        System.out.println(p);
    }

}

 

package com.loaderman.bean;

public class Person {
    private String name;
    private int age;
    public Person() {
        super();

    }
    public Person(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM