反射获取带参数的构造方法
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; }
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
posted on 2017-02-17 19:21 LoaderMan 阅读(4398) 评论(0) 编辑 收藏 举报