1. 反射获得带参构造方法并且使用:
(1)获取字节码文件对象
Class c = Class.forName("cn.itcast_01.Person");
(2)获取带参构造器对象,public Constructor<T> getConstructor(Class<?>... parameterTypes)
Constructor con = c.getConstructor(String.class , int.class , String.class);
(3)通过带参构造器对象创建对象,public T newInstance(Object... initargs)
Object obj = con.newInstance("林青霞", 27, "北京");
System.out.println(obj);
运行效果图和代码如下(下面的Person是另外一个包下的,这里我们访问Person):
1 package cn.itcast_02;
2
3 import java.lang.reflect.Constructor;
4
5 /*
6 * 需求:通过反射去获取该构造方法并使用:
7 * public Person(String name, int age, String address)
8 *
9 * Person p = new Person("林青霞",27,"北京");
10 * System.out.println(p);
11 */
12 public class ReflectDemo2 {
13 public static void main(String[] args) throws Exception {
14 // 获取字节码文件对象
15 Class c = Class.forName("cn.itcast_01.Person");
16
17 // 获取带参构造方法对象
18 // public Constructor<T> getConstructor(Class<?>... parameterTypes)
19 Constructor con = c.getConstructor(String.class, int.class,
20 String.class);
21
22 // 通过带参构造方法对象创建对象
23 // public T newInstance(Object... initargs)
24 Object obj = con.newInstance("林青霞", 27, "北京");
25
26 System.out.println(obj);
27 }
28 }