java的反射(反射所有公有成员)
2018-05-12 22:21
71 查看
1.类的加载器(了解即可)
在使用任何类之前,程序都会针对存在的各个类的class文件各自创建有且只有一个的class文件对象加载进内存(反射的基础)
System ClassLoader 系统加载器:将我们写的类跟外加的类包加载进内存
其他还有 根类加载器,扩展类加载器
2、反射:运行状态中对于任何一个类都能知道跟调用所有的属性跟方法
用于不改变源代码,而想使用新的方法
1)每个类都存在一个静态成员对象class(它是此类的全称Class类对象)
对象的getClass()返回的也是此类的Class类对象
Class类的静态方法forName( String A)A必须为全称 返回A此类Class类对象
以上方法获取的Class对象唯一
2)Class文件对象中获取需要的成员 (Class A)
//第一种
Constructor[] cons = A.getConstructors();//获取所有公共的构造方法,注意别弄错成default
Constructor con = A.getConstructors();//获取特定的构造器 根据()内的参数获取的指定构造方法()参数的类型必须是Class类型
con.newInstance(Object...);//运行获取到的构造方法(()内可选填入所需参数),返回一个泛型,未指定所以返回Object,同时可以强制转换成class文件对象的类型
//每次调用方法创建的对象都是不唯一的
//第二种快捷创建对象 限制:被创建对象必须含有空参构造器,同时权限必须是public则可以直接创建对象,不必进行构造器的获取
Object obj = A.newInatance();//对象直接创建 这个()不能传递参数此方法创建的对象 可以调用此类型本可以调用的所有方法
所以说习惯性创建类时就算不用到也要随手加一个空参构造函数public A(){}
相关文章推荐
- java 反射机制 之 getMethod获取公有方法 getDeclaredMethod获取所有方法 然后invoke执行其所有方法
- java中利用反射机制得到一个类的所有构造方法,成员方法机器参数的列表
- Java反射学习-使用反射修改一个类中的所有String类型的成员变量的值
- java反射(获取私有成员,还有公有成员变量)
- java反射,获取类对象所有成员变量,从字符串调用函数
- java 反射机制 之 getMethods获取所有公有方法 和 getDeclaredMethods 获取本类所有方法
- 通过Java反射测试类私有成员
- java反射(1)获取类的所有
- Java反射1——扫描某个包下的所有类
- Java中利用反射对类的hidden成员方法和属性的访问
- java利用反射来调用一个类的私有方法和成员变量
- Java反射获取成员方法
- 将任意一个对象中的所有String类型 的成员变量所对应字符串中的“b”改成“a”(利用反射)
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- java 利用反射机制,获取实体所有属性和方法,并对属性赋值
- 黑马程序员---java基础加强_成员变量的反射
- Java反射代码--06.执行所有特定的set方法
- java中用反射访问私有方法和私有成员
- java中使用反射获取pojo(实体)类的所有字段值
- Java反射06 : 成员变量Field学习示例