/* * 通过反射获取class文件中的构造方法,运行构造方法 * 运行构造方法,创建对象 * 1、获取class文件对象 * 2、从class文件对象中,获取需要的成员 * * Constructor 描述构造方法对象类 */
1、person类,用于测试获取无参的构造方法
package cn.itcast.demo1; public class Person { public String name; private int age; /*static{ System.out.println("静态代码块"); }*/ public Person(){ } public Person(String name,int age){ this.name = name; this.age = age; } private Person(int age,String name){ this.name = name; this.age = age; } public void eat(){ System.out.println("人吃饭"); } public void sleep(String s, int a,double d){ System.out.println("人在睡觉"+s+"....."+a+"....."+d); } private void playGame(){ System.out.println("人在打游戏"); } public String toString() { return "Person [name=" + name + ", age=" + age + "]"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
2、获取无参构造方法测试类
public class ReflectDemo1 { public static void main(String[] args) throws Exception { Class c = Class.forName("cn.itcast.demo1.Person"); //使用class文件对象,获取类中的构造方法 // Constructor[] getConstructors() 获取class文件对象中的所有公共的构造方法像person类中构造方法用private修饰的是获取不到的 /*Constructor[] cons = c.getConstructors(); //获取到的是多个构造方法 for(Constructor con : cons){ System.out.println(con); }*/ //获取指定的构造方法,空参数的构造方法 Constructor con = c.getConstructor();//获取指定的构造方法 //运行空参数构造方法,Constructor类方法 newInstance()运行获取到的构造方法 Object obj = con.newInstance(); System.out.println(obj.toString()); } }
原文地址:https://www.cnblogs.com/a8457013/p/8134034.html
时间: 2024-11-05 20:37:21