Java反射基础 入门(二)

上一篇文章中已经可以获取到类的字节码文件。那么该如何实例化对象呢?

1.根据字节码文件创建Person对象(无参构造函数)

Object obj=clazz.newInstance();

方法说明:newInstance()
          创建此 Class 对象所表示的类的一个新实例。

即可产生Person类的对象,默认调用的是Person的无参构造函数

2.那么如果该类没有无参构造函数,该如何获取呢?

查阅JavaApi可以发现这样的一个函数

Constructor<?>[] getConstructors()
          返回一个包含某些 Constructor 对象的数组,这些对象反映此 Class 对象所表示的类的所有公共构造方法。

那么什么是返回的参数Constructor呢 ?

Constructor 提供关于类的单个构造方法的信息以及对它的访问权限。(也就是说获取构造函数)

Constructor constructor=clazz.getConstructor(String.class,int.class);
		//通过构造器初始化队象
		Object obj=constructor.newInstance("xiaoming",38);

函数运行结果为:person param run..xiaoming:38

这样就会直接调用Person类的有参构造函数(注意这里的getConstructor参数为String.class,int.class)

以上方法就是获得该类的实例化对象。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章