概述
package cn.itcast_02;
import java.lang.reflect.Constructor;
import cn.itcast_01.Person;
/*
* 通过反射获取构造方法并使用。
*/
public class ReflectDemo {
public static void main(String[] args) throws Exception {
// 获取字节码文件对象
Class c = Class.forName("cn.itcast_01.Person");//反射是不会让你看到任何类的信息的,cn.itcast_01.Person将来会做成配置文件,不是写死的,配置谁就运行谁
// 获取构造方法
// public Constructor[] getConstructors():所有公共构造方法(有public修饰的构造方法)
// public Constructor[] getDeclaredConstructors():所有构造方法
Constructor[] cons = c.getDeclaredConstructors();
for (Constructor con : cons) {
System.out.println(con);
}
// 获取单个构造方法
// public Constructor<T> getConstructor(Class<?>... parameterTypes)
// 参数表示的是:你要获取的构造方法的构造参数个数及数据类型的class字节码文件对象
Constructor con = c.getConstructor();// 返回的是构造方法对象
// public T newInstance(Object... initargs)
// 使用此 Constructor 对象表示的构造方法来创建该构造方法的声明类的新实例,并用指定的初始化参数初始化该实例。
Object obj = con.newInstance();//相当于Person p = new Person(); System.out.println(p);
System.out.println(obj);
Person p = (Person)obj;
p.show();
}
}
最后
以上就是听话皮皮虾为你收集整理的反射-通过反射获取无参构造方法并使用的全部内容,希望文章能够帮你解决反射-通过反射获取无参构造方法并使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复