反射机制
来源:互联网 发布:税务数据共享 编辑:程序博客网 时间:2024/06/05 16:40
在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义.反射 是 Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说“自审”,并能直接操作程序的内部属性。Java 的反射机制的实现要借助于4个类:class,Constructor,Field,Method;其中class代表的时类对 象,Constructor-类的构造器对象,Field-类的属性对象,Method-类的方法对象。
1.通过反射技术可以访问到其他包名下数据方法等
Java中的反射机制,被称为Reflection,它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性或方法。Reflection机制允许程序在正在执行的过程中,利用Reflection APIs取得任何已知名称的类的内部信息,包括:package、 type parameters、 superclass、 implemented interfaces、 inner classes、 outer classes、 fields、 constructors、 methods、 modifiers等,并可以在执行的过程中,动态生成Instances、变更fields内容或唤起methods。再次基础上我们可以利用反射机制在Java程序中,动态的去调用一些protected甚至是private的方法或类,这样可以很大程度上满足我们的一些比较特殊需求。
有关反射技术的API:
Class类:
Class类代表着某个类的字节码,要使用反射,就需要取得对应的Class对象,然后就通过这个对象,就可解剖出类的成员变量,成员方法等等。
获取Class类对象
//通过Class的forName()方法,此方法最为常用
Class class1 = Class.forName(className);
//通过 .class
Class class2 = XXX.class;
//通过对象获得
Class class3 = new XXX().getClass();
Class类的常用方法:
getConstructor() 获取构造函数
getMethod() 获取成员方法
getField() 获取成员变量
getDeclaredConstructor() 获取私有的构造函数
getDeclaredMethod() 获取私有的成员方法
getDeclaredField() 获取私有的成员变量
取得method对象之后
调用
method.invoke(obj, null)
使用该方法
1.通过反射技术可以访问到其他包名下数据方法等
Java中的反射机制,被称为Reflection,它允许运行中的Java程序对自身进行检查,并能直接操作程序的内部属性或方法。Reflection机制允许程序在正在执行的过程中,利用Reflection APIs取得任何已知名称的类的内部信息,包括:package、 type parameters、 superclass、 implemented interfaces、 inner classes、 outer classes、 fields、 constructors、 methods、 modifiers等,并可以在执行的过程中,动态生成Instances、变更fields内容或唤起methods。再次基础上我们可以利用反射机制在Java程序中,动态的去调用一些protected甚至是private的方法或类,这样可以很大程度上满足我们的一些比较特殊需求。
有关反射技术的API:
Class类:
Class类代表着某个类的字节码,要使用反射,就需要取得对应的Class对象,然后就通过这个对象,就可解剖出类的成员变量,成员方法等等。
获取Class类对象
//通过Class的forName()方法,此方法最为常用
Class class1 = Class.forName(className);
//通过 .class
Class class2 = XXX.class;
//通过对象获得
Class class3 = new XXX().getClass();
Class类的常用方法:
getConstructor() 获取构造函数
getMethod() 获取成员方法
getField() 获取成员变量
getDeclaredConstructor() 获取私有的构造函数
getDeclaredMethod() 获取私有的成员方法
getDeclaredField() 获取私有的成员变量
取得method对象之后
调用
method.invoke(obj, null)
使用该方法
0 0
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- 反射机制
- BZOJ1858 [Scoi2010]序列操作
- QPainter
- RISC与CISC
- LeetCode 199 Binary Tree Right Side View
- 斐波那契数列
- 反射机制
- bash的通配符
- WAS的VGC参数
- CentOS下载百度网盘文件的方法
- C#中的自定义控件
- TLS thread local storing
- 情景再现,从源码角度分析异常:The specified child already has a parent
- Hibernate初学抽取工具类错误
- zip(*I)与zip(I)区别