首页 > 代码库 > 反射类的构造函数
反射类的构造函数
1 import java.lang.reflect.Constructor; 2 import java.lang.reflect.InvocationTargetException; 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import org.junit.Test; 7 8 public class Demo { 9 10 /**11 * 反射类的构造函数,创建类的对象12 * 13 * @param args14 * @throws ClassNotFoundException15 * @throws Exception16 * @throws IllegalAccessException17 * @throws InstantiationException18 * @throws IllegalArgumentException19 */20 21 // 反射构造函数:public Person()22 @Test23 public void test1() throws Exception {24 25 Class clazz = Class.forName("Person");26 27 Constructor c = clazz.getConstructor(null);28 29 Person p = (Person) c.newInstance(null);30 31 System.out.println(p.name);32 33 }34 35 // 反射构造函数:public Person(String name);36 @Test37 public void test2() throws Exception {38 Class clazz = Class.forName("Person");39 40 Constructor c = clazz.getConstructor(String.class);41 42 Person p = (Person) c.newInstance("xxxxx");43 44 System.out.println(p.name);45 46 }47 48 //public Person(String name,int password){}49 @Test50 public void test3() throws Exception {51 Class clazz = Class.forName("Person");52 53 Constructor c = clazz.getConstructor(String.class,int.class);54 55 Person p = (Person) c.newInstance("xxxxx",12);56 57 System.out.println(p.name);58 59 }60 61 //public Person(List list){}62 @Test63 public void test4() throws Exception {64 Class clazz = Class.forName("Person");65 66 Constructor c = clazz.getDeclaredConstructor(List.class);67 68 c.setAccessible(true);//暴力反射,设置可以访问私有69 70 Person p = (Person) c.newInstance(new ArrayList());71 72 System.out.println(p.name);73 74 }75 76 //创建对象的另一种方法77 @Test78 public void test5() throws Exception {79 Class clazz = Class.forName("Person");80 81 Person p = (Person) clazz.newInstance();82 83 System.out.println(p.name);84 85 }86 }
1 import java.util.List; 2 3 4 public class Person { 5 6 public String name="hellowrold"; 7 8 public Person(){ 9 System.out.println("person");10 }11 12 public Person(String name){13 System.out.println("person :"+name);14 }15 16 public Person(String name,int password){17 System.out.println("person:"+name+password);18 }19 20 private Person(List list){21 System.out.println("list");22 }23 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。