反射:使用反射调用构造器创建对象
来源:互联网 发布:黑暗之光披风升阶数据 编辑:程序博客网 时间:2024/06/05 16:10
1.构造器最大的作用:创建对象
为什么使用反射创建对象,为什么不直接来new呢?在框架中,提供给我们的都是字符串.
-----------------------------------------------------------
使用反射创建对象:
步骤:
1);找到构造器所在类的字节码对象.
2):获取构造器对象.
3):使用反射,创建对象
-----------------------------------------------------------
Constructor<T>类:表示类中构造器的类型,Constructor的实例就是某一个类中的某一个构造器
常用方法:
public T newInstance(Object... initargs):如调用带参数的构造器,只能使用该方式.
参数:initargs:表示调用构造器的实际参数
返回:返回创建的实例,T表示Class所表示类的类型
如果:一个类中的构造器是外界可以直接访问,同时没有参数.,那么可以直接使用Class类中的newInstance方法创建对象.
public Object newInstance():相当于new 类名();调用私有的构造器
import java.lang.reflect.Constructor;import org.junit.Test;/** * * 说明:反射调用构造函数创建对象实例 * */public class NewInstanceDemo {@Testpublic void testNewInstance() throws Exception {Class<Person> pClass = Person.class;Constructor<Person> con = pClass.getConstructor();//调用public Person()con.newInstance();//公共的无参构造System.out.println("================================");Constructor<Person> con2 = pClass.getConstructor(String.class);//调用public Person(String name)con2.newInstance("杨哥");//公共的有参构造:杨哥System.out.println("================================");Constructor<Person> con3 = pClass.getDeclaredConstructor(int.class,String.class);//调用private Person(int age, String name)con3.setAccessible(true);con3.newInstance(18,"杨哥");//私有的有参构造:age=18,name=杨哥System.out.println("================================");//如果一个类中有公共的无参数构造器,那么可以使用一下方式创建对象pClass.newInstance();//公共的无参构造}}注意:访问私有的成员:必须先设置可访问的对象setAccessible(true);
阅读全文
0 0
- 反射:使用反射调用构造器创建对象
- Java反射创建对象-自适应构造器
- java反射获取构造器以及调用构造器创建对象
- 利用反射调用带参数的构造函数创建对象
- java反射调用配置文件构造类对象,使用其方法
- java反射调用配置文件构造类对象,使用其方法
- Java通过反射机制使用非默认构造器创建对象
- Java反射——获取构造器以及创建对象
- 反射获取构造方法并创建对象
- 反射 创建对象及访问构造方法
- 反射获取构造器对象
- 反射的使用---创建对象
- java使用反射创建对象
- 反射第三步 : 通过反射获取某一个类的 构造器Constructor 并通过反射创建对象
- 使用反射机制调用构造函数
- 关于java 反射 创建对象 调用 有参数 的 构造函数
- java基础-反射3(反射,反射创建对象,操作对象属性,调用对象方法)
- 反射--获取和调用构造器
- 浏览器的跨域问题以及解决方案
- 嵌入式Linux驱动笔记(一)------第一个LED驱动程序
- spring boot热部署
- JSON
- ConcurrentHashMap详细分析
- 反射:使用反射调用构造器创建对象
- 使用 svm+hog 训练,检测手写数字
- JAVA学习中的心得和小程序
- 小白学分布式程序开发3-分布式系统的数据一致性问题
- SpringBoot学习:使用spring-boot-devtools进行热部署
- equals 与 ==
- 后端api之路——初窥门径
- Ultra-QuickSort 求最小交换次数即求逆序对数 树状数组+离散化
- 深度学习(一)——MP神经元模型, BP算法, 神经元激活函数, Dropout