android 反射调用带参数构造方法,Android 反射机制的理解
之前在网上找有关反射机制的资料发现网上关于这块的资料不多,而且不太容易懂,所以试着写一篇我自己所理解的反射机制希望能多你有所帮助.
首先来看看用反射机制和用以前的方法新建对象实例有什么不同
第一步新建一个Person对象
用以前的方法是:
Person p = new Person();
在内存中新建一个Person的实例,对象p对这块内存地址进行引用
用反射机制实现 (有三种方法):
第一种:
Class> cls=Class.forName("com.fanshe.Person"); //forName(包名.类名)
Person p=(Person)cls.newInstance();
1.通过JVM查找并加载指定的类(上面的代码指定加载了com.fanshe包中的Person类)
2.调用newInstance()方法让加载完的类在内存中创建对应的实例,并把实例赋值给p
第二种:
Person p = new Person();
Class> cls=p.getClass();
Person p2=(Person)cls.newInstance();
1.在内存中新建一个Person的实例,对象p对这个内存地址进行引用
2.对象p调用getClass()返回对象p所对应的Class对象
3.调用newInstance()方法让Class对象在内存中创建对应的实例,并且让p2引用实例的内存地址
第三种:
Class> cls=Person.Class();
Person p=(Person)cls.newInstance();
1.获取指定类型的Class对象,这里是Person
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
