package cn.lnu.reflect; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; import org.junit.Test; //������Ĺ��캯����������Ķ��� public class Demo2 { /** * ������Ĺ��캯���������� * @param args * @throws ClassNotFoundException * @throws ClassNotFoundException */ //���乹�캯����public Person(){ @Test public void test1() throws Exception{ Class clazz=Class.forName("cn.lnu.reflect.Person");//����Person���ֽ��뵽�ڴ棬����һ���ֽ������ Constructor c=clazz.getConstructor(null);//�����������һ���ɱ��������������Ҫ�����޲ι��캯�������ﴫ��null������һ�������޲ι��캯���Ķ��� Person p=(Person) c.newInstance(null);//ͨ��һ�����캯������ķ�������person��Ķ��� System.out.println(p.name); } //���乹�캯����public Person(String name){ @Test public void test2() throws Exception{ Class clazz=Class.forName("cn.lnu.reflect.Person");//����Person���ֽ��뵽�ڴ棬����һ���ֽ������ Constructor c=clazz.getConstructor(String.class);//�����������һ���ɱ��������������Ҫ��������һ��String���Ͳ����Ĺ��캯�������ﴫ��String.class Person p=(Person) c.newInstance("mogu");//ͨ��һ�����캯������ķ�������person��Ķ��� System.out.println(p.name); } //���乹�캯����public Person(String name,int password){ @Test public void test3() throws Exception{ Class clazz=Class.forName("cn.lnu.reflect.Person");//����Person���ֽ��뵽�ڴ棬����һ���ֽ������ Constructor c=clazz.getConstructor(String.class,int.class);//�����������һ���ɱ��������������Ҫ��������һ��String���Ͳ�����һ�����εĹ��캯�������ﴫ��String.class��int.class Person p=(Person) c.newInstance("mogu",123);//ͨ��һ�����캯������ķ�������person��Ķ��� System.out.println(p.name); } //���乹�캯����private Person(List list){ @Test public void test4() throws Exception{ Class clazz=Class.forName("cn.lnu.reflect.Person");//����Person���ֽ��뵽�ڴ棬����һ���ֽ������ Constructor c=clazz.getDeclaredConstructor(List.class); c.setAccessible(true);//���ܹ��캯����ʲô�������ԣ��������򿪳�public�����б������� List list=new ArrayList(); Person p=(Person) c.newInstance(list);//ͨ��һ�����캯������ķ�������person��Ķ��� System.out.println(p.name); } //�������������һ��;�� @Test public void test5() throws Exception{ Class clazz=Class.forName("cn.lnu.reflect.Person");//����Person���ֽ��뵽�ڴ棬����һ���ֽ������ Person p=(Person) clazz.newInstance();//�ڲ��Ƿ���person����޲ι��캯����ʹ�����ַ�ʽ��������������ṩһ���޲ι��캯�����ȼ��������test1�����ȷ�����޲ι��캯����ȥ��������ķ��� System.out.println(p.name); } }