跟王老师学反射:使用反射生成并操作对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跟王老师学反射:使用反射生成并操作对象相关的知识,希望对你有一定的参考价值。
跟王老师学反射(五):使用反射生成对象
主讲教师:王少华 QQ群号:483773664
学习内容
使用反射生成对象
模板类
一、创建对象
(一)、非反射方法
(二)、反射方式
通过构造方法生成对象,有二种方式,一种通过无参的构造方法,一种是通过有参的构造方法。
1、无参构造方法
1.1 如果无参数的构造方法是public
也可以使用Class对象的newInstance()方法来创建该Class对象对应类的实例
1.2 如果无参构造方法是私有化的
结论
如果无参构造访问,是私有化的,一定要使用构造方法来构造对象,而不能使用使用Class对象的newInstance()方法来创建该Class对象对应类的实例。因为Class对象的newInstance()方法,本质上还是使用Construct类中的public无参构造方法.
2 使用有参数构造方法来创建对象
先使用Class对象获取指定的Constructor对象,再调用Constructor对象的newInstance()方法来创建该Class对象的对应的实例。通过这种方式可以选择使用某个类的指定构造器来创建实例。
利用指定构造器来创建Java对象需要以下三个步骤
获取该类的Class对象
利用Class对象的getConstructor()方法来猎取指定的构造器
调用Constructor的nesInstance()方法来创建Java对象
二、练习
(一)需求
编写一方法,根据传入的全限类名,生成该类对应的实例
(二)参考代码:
1 2 3 4 | public T createObject(String className) throws Exception{ Class<T> tClass = (Class<T>) Class.forName(className); return tClass.newInstance(); } |
1 2 3 4 5 | public static void test3() throws Exception{ ObjectFactory<Person> objectFactory = new ObjectFactory<>(); Person person = objectFactory.createObject( "chapter09_05.Person" ); System.out.println(person); } |
以上是关于跟王老师学反射:使用反射生成并操作对象的主要内容,如果未能解决你的问题,请参考以下文章