Java反射技术-获取构造函数
来源:互联网 发布:手机可以做淘宝客吗 编辑:程序博客网 时间:2024/05/17 17:58
##Java反射技术-获取构造函数
一般情况下,我们会想,可以直接new对象,为什么需要通过反射机制来调用一个函数中的方法呢?
答案很简单,编写/了解框架.
构造函数在一个类中的作用是提供一种创建对象的方式,下面是简单的使用反射机制来获取类中的构造函数.
###创建反射的对象(Person类)
public class Person {
public String person = "superman";
//无参构造函数
public Person() {
System.out.println("我是公共无参构造");
}
//有参构造函数
public Person(String name) {
System.out.println(person+"----"+name);
}
//私有构造函数
private Person(int num) {
System.out.println("我是私有有参构造");
}
}
### 获取构造函数
* 获取无参构造函数
Class clazz = Class.forName("com.itheima.classReflect.Person");
//获取无参构造方法
Constructor constructor = clazz.getConstructor();
Person person = (Person) constructor.newInstance();
System.out.println(person.person);
* 值得注意的是,Java提供了另一种获取无参构造的方法,所以在书写类时,最好添加上无参构造,方便使用放射机制调用
Class clazz = Class.forName("com.itheima.classReflect.Person");
Person person = (Person) clazz.newInstance();
* 获取有参构造函数
Class clazz = Class.forName("com.itheima.classReflect.Person");
//获取有参构造方法public Person(String name)
Constructor constructor = clazz.getConstructor(String.class);
Person person = (Person) constructor.newInstance("xxx");
* 获取私有化有参构造函数
Class clazz = Class.forName("com.itheima.classReflect.Person");
//使用getDeclaredConstructor获取在Person类中声明构造方法
Constructor constructor = clazz.getDeclaredConstructor(int.class);
//暴力破解私有构造
constructor.setAccessible(true);
constructor.newInstance(12);
一般情况下,我们会想,可以直接new对象,为什么需要通过反射机制来调用一个函数中的方法呢?
答案很简单,编写/了解框架.
构造函数在一个类中的作用是提供一种创建对象的方式,下面是简单的使用反射机制来获取类中的构造函数.
###创建反射的对象(Person类)
public class Person {
public String person = "superman";
//无参构造函数
public Person() {
System.out.println("我是公共无参构造");
}
//有参构造函数
public Person(String name) {
System.out.println(person+"----"+name);
}
//私有构造函数
private Person(int num) {
System.out.println("我是私有有参构造");
}
}
### 获取构造函数
* 获取无参构造函数
Class clazz = Class.forName("com.itheima.classReflect.Person");
//获取无参构造方法
Constructor constructor = clazz.getConstructor();
Person person = (Person) constructor.newInstance();
System.out.println(person.person);
* 值得注意的是,Java提供了另一种获取无参构造的方法,所以在书写类时,最好添加上无参构造,方便使用放射机制调用
Class clazz = Class.forName("com.itheima.classReflect.Person");
Person person = (Person) clazz.newInstance();
* 获取有参构造函数
Class clazz = Class.forName("com.itheima.classReflect.Person");
//获取有参构造方法public Person(String name)
Constructor constructor = clazz.getConstructor(String.class);
Person person = (Person) constructor.newInstance("xxx");
* 获取私有化有参构造函数
Class clazz = Class.forName("com.itheima.classReflect.Person");
//使用getDeclaredConstructor获取在Person类中声明构造方法
Constructor constructor = clazz.getDeclaredConstructor(int.class);
//暴力破解私有构造
constructor.setAccessible(true);
constructor.newInstance(12);
阅读全文
0 0
- Java反射技术-获取构造函数
- Java反射---获取field信息跟构造函数信息
- JAVA反射获取成员变量构造函数信息
- java反射:获取类的成员变量和构造函数
- Java 反射机制 获取Class中的构造函数
- Java反射获取构造方法
- 22、Java入门—反射之获取获取成员变量和构造函数的信息
- Java学习提要——"反射"获取方法信息(成员函数、成员变量 、构造函数)
- java反射---获取类的构造方法
- Java反射获取属性、方法、构造器
- JAVA 采用反射机制 获取构造方法
- java 反射机制 之 getConstructor获取有参数构造函数 然后newInstance执行有参数的构造函数
- Java--Reflect(反射)专题4——获取成员变量以及构造函数信息
- 【慕课网笔记】Java 反射机制 4 获取成员变量构造函数信息
- Java反射机制:获取成员变量和构造函数的信息
- Java中通过反射获取类的信息(方法名,参数,构造函数等)
- Java反射(四)----- 获取成员变量和构造函数信息
- Java反射之获取类的信息(类名,属性,方法,构造函数)
- Java反射机制详解
- egret事件模型
- android网络库重构思路
- 我也说说Emacs吧(2)_-_Emacs其实就是函数的组合
- React textarea自适应文字高度伸缩 超简单版
- Java反射技术-获取构造函数
- 如何让Hbulider识别隐藏文件
- module依赖冲突
- Android LayoutInflater详解
- JS 从原型与继承理解对象
- C++中迭代器失效的问题
- RabbitMQ消息队列(四)
- c++11 中的 move 与 forward 指导过程
- C++求圆面积和周长