Java 反射
来源:互联网 发布:知乎能用邮箱注册吗 编辑:程序博客网 时间:2024/04/29 08:48
一、Java 反射可以动态的创建和编译对象,获取正在运行的对象的信息。
反射的功能:
1、判断对象所属的类
2、判断对象拥有的成员变量和方法
3、可以调用 private类型的方法
反射的缺点对性能有影响,慢于直接执行相同的操作
二、Java反射中相关的类
1、Class:表示正在运行的 Java 应用程序中的类和接口
2、Field:有关类或接口的单个字段的信息,以及对它的动态访问权限
3、Method:关于类或接口上单独某个方法(以及如何访问该方法)的信息
4、Constructor:关于类的单个构造方法的信息以及对它的访问权限
三、反射的应用实例
(1)获取一个类的 Class 对象
Class clzz1 = ReflectTest.class;
Class clzz2 = Class.forName(“com.reflect.test.ReflectTest”);
Class clzz1 = new ReflectTest().class;
(2)Class对象的主要方法
① 获取构造函数Contructor
Constructor getConstructor(Class[] params) // 获得使用特殊的参数类型的公共构造函数 Constructor[] getConstructors() // 获得类的所有公共构造函数 Constructor getDeclaredConstructor(Class[] params) // 获得使用特定参数类型的构造函数(与接入级别无关) Constructor[] getDeclaredConstructors() // 获得类的所有构造函数(与接入级别无关)
② 获取字段信息Field
Field getField(String name) // 获得命名的公共成员字段Field[] getFields() // 获得类的所有公共字段Field getDeclaredField(String name) // 获得类声明的命名的字段Field[] getDeclaredFields() // 获得类声明的所有字段
③ 获取方法信息Method
Method getMethod(String name, Class[] params) // 使用特定的参数类型,获得命名的公共方法 Method[] getMethods() // 获得类的所有公共方法 Method getDeclaredMethod(String name, Class[] params) // 使用特写的参数类型,获得类声明的命名的方法 Method[] getDeclaredMethods() // 获得类声明的所有方法
(3)综合实例
待补充...
0 0
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- 格式化小数,四舍五入
- Android stduio 导入.9图片的问题
- 翻译 Cg Program in Unity - 2.2 Transparency (2)
- QT 多线程程序设计
- Advanced REST client的使用说明以及安装
- Java 反射
- CentOS 7.1编译安装nginx
- 异常体系学习笔记(一)
- TCP/IP解析
- RelativeLayout 内容居中解决办法
- 修改USB数据共享
- Mips learn
- 在键盘上方添加UIToolbar
- CocoaLumberjack 学习纪录(八)