Java反射机制( JAVA Reflection)
来源:互联网 发布:数据库结构设计文档 编辑:程序博客网 时间:2024/06/05 03:11
首先有两个问题:
- 1
- 2
- 1
- 2
<1> 反射机制指的是我们可以于运行时加载、探知、使用编译期间完全未知的classes。换句话说,Java程序可以加载一个运行时才得知名称的class,获悉其完整构造(但不包括methods定义),并生成其对象实体、或对其fields设值、或唤起其methods。
<2>反射能够让我们:
在运行时检测对象的类型;动态构造某个类的对象;检测类的属性和方法,并调用;任意调用对象的方法;修改构造函数、方法、属性的可见性;
用处:
对于Web框架,开发人员在配置文件中定义他们对各种接口和类的实现。通过反射机制,
例如,Spring框架使用如下的配置文件:
- 1
- 2
- 3
- 1
- 2
- 3
当Spring容器处理元素时,会使用Class.forName(“com.programcreek.Foo”)来初始化这个类,并再次使用反射获取元素对应的setter方法,为对象的属性赋值。
Servlet也会使用相同的机制:
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
介绍三个对象的机制与实现:
类对象(Class类的某一个具体类对象)
实例化对象(某一具体类的实例对象)
a. Class对象的机制与实现(假设已经存在普通类Book)
- 1
- 1
1 三种*类对象*的获取方式 Class cl1 (类的类型) = Class.forName("一个类的完整路径名")2 类的实例化对象来获取类对象 Object ob = new Book(); Class cl2 (类的类型) = ob.getClass();3 直接使用类.class Class cl3 = Book.class;
通过类对象可以实例化一个对象
- 1
- 1
b. Field对象的机制与实现
Java.lang.reflect.Field类,用于表示类中,接口中属性对象的类。
可以操作类中私有,以及公有等全部属性和属性的信息。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
c. Method对象的机制与实现
Java.lang.reflect.Method类是用于表示类中,接口中方法对象的类。
可以操作类中私有,以及公有…全部方法。
0 0
- java反射机制reflection
- java反射机制--reflection
- JAVA 反射机制--reflection
- java反射机制(Reflection)
- Java - 反射机制(Reflection)
- java Reflection 反射机制
- Java反射机制( JAVA Reflection)
- Java反射机制(Reflection )
- java反射机制Reflection学习
- Java反射机制(Reflection)
- java Reflection(反射)机制
- java reflection(反射机制)
- 详解Java反射机制(Reflection)
- Java Reflection(反射机制)详解
- Java Reflection (java中的反射机制)
- 浅浅谈Java反射机制( JAVA Reflection)
- Java反射(Reflection)机制与JDBC
- Java中反射机制(Reflection)学习
- Python2.7使用Oracle插入中文字符报错问题解决方案
- TABLEAU地理信息补录
- 使用requireJS按需加载
- (26):优先考虑泛型
- iconfont使用简易教程
- Java反射机制( JAVA Reflection)
- ESP8266与NodeMCU开发(二)基础实验三则
- 剑指offer系列----镜像二叉树
- 整理一下当年的学习笔记之:JFreeChart初体验
- 理解Python的With语句
- java 反射实现快速sql语句
- web app是否能主宰未来的移动互联网?
- elasticsearch源码分析之客户端(三)
- Linux进程间通信——使用流套接字