反射机制是Java语言中很重要的特性,是在运行时获知对象信息,并可在运行时操作对象的机制。
反射(Reflect), 顾名思义,通过Java对象的Class信息,可以逆向生成对象、探知运行时的对象信息、调用对象方法,一种可以反向作用的机制。
反射的用途:
1. 在运行时获取任意对象所属的类对象
Class<?> clazz = Class.forName(String className);
2. 在运行时构造任意类的对象
Object obj = clazz.newInstance();
3. 在运行时获取任意类所具有的成员变量和方法
field.set(Object obj, Object value);
field.get(Object obj);
4. 在运行时调用任意对象的方法 (最常见的需求,尤其是当该方法是私有方法或者隐藏方法)
method.invoke(Object obj, Object... args);
通过反射机制,已知的应用有:
1. ORM框架使用了反射机制,来实现对象和数据表的映射关系;
2. 动态代理中使用反射机制,动态生成代理角色,这样比较好地解决了静态代理的代码膨胀问题。
常用的获取类信息方法:
1. 获取类对象
Class clazz = obj.getClass();
或 Class clazz = Class.forName(${className});
2. 获取对象中声明的方法:
Method[] methods = clazz.getDeclaredMethods();
3. 获取对象的属性数据:
Field[] fields = clazz.getDeclaredFields();
动态执行对象的方法:
1. Method.invoke() 动态执行对象的方法
如果是私有方法,先把Method的可见性设为true,然后再调用。
method.setAccessible(true);
2. Field.setXXX() 动态设置对象的属性
总结:
反射机制使Java语言在很大程序上增强了灵活性,在语言的动态的功能扩展上有了更多的想象力和空间。
相关推荐
NULL 博文链接:https://mengdejun.iteye.com/blog/932773
3.2 相关知识 3.2.1 Java反射机制的概念 3.2.2 反射机制的功能 3.2.3 Java反射机制的相关API 3.2.4 使用反射机制的步骤 3.2.5 反射机制的应用场景 3.2.6 反射机制的优缺点 Java高级程序设计实战教程第三章-Java反射...
对java泛型以及反射机制进行原理和应用上的讲解,帮助初学者对这两个概念进行更轻松的掌握
Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。...
通过学习后,保证初学者对反射有一个很好的理解,有助于之后对反射的进一步...其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。
可以说,实现了反射机制的系统都具有开放性,但具有开放性的系统并不一定采用了反射机制,开放性是反射系统的必要条件。一般来说,反射系统除了满足开放性条件外还必须满足原因连接(Causally-connected)。所谓原因...
1.1 反射的基本概念 1.2 Java 中的类反射 2.2.1 2.2.2
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改...其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。
下面结合一个web路由的实例来阐述python的反射机制的使用场景和核心本质。 一、前言 def f1(): print("f1是这个函数的名字!") s = "f1" print("%s是个字符串" % s) 在上面的代码中,我们必须区分两个概念,f1...
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...
对构件演化一致性问题进行了较为深入的研究,提出了正常运行一致性、兼容性一致性的概念,并把兼容性一致性分为观察一致性、弱一致性、强一致性,并基于反射机制建立了一种构件系统行为一致性判定模型,通过对对象...
主要介绍了Java反射机制概念、原理与用法,较为详细的分析了java反射机制的概念、原理,并结合实例形式总结分析了java反射机制的具体使用方法与相关注意事项,需要的朋友可以参考下
指程序可以访问、检测和修改它本身状态或行为的一种能力。...其中LEAD/LEAD++ 、Open C++ 、Meta Xa和Open Java等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。
反射:是将一个类的各个部分封装为其他对象,这就是反射机制。 看着上面文邹邹的话语,想必大家并没有理解啥是反射。下面我们来通过一个例子来进行讲解。 我们来看一下我们的Java代码在计算机中经历的几个阶段: 第...
Java 反射机制 反射机制简介 反射机制应用示例 简单的Ioc实现 代理模式 Java动态代理 简单的Aop实现 “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl...
主要介绍了Java 反射机制原理与用法,结合实例形式详细分析了Java反射机制的相关概念、原理、基本使用方法及操作注意事项,需要的朋友可以参考下
1 简述反射机制 反射是一种间接操作目标对象的机制,在程序程序运行时获取或者设置对象自身的信息。 只要给定类的名字,就可以通过反 射获取类的所有信息,接着便能调用它的任何一个方法和属性。 反射的步骤有哪些?...
主要介绍了Java编程反射机制用法,简单说明了反射机制的概念、原理并结合实例形式总结分析了java反射机制的简单使用方法与相关注意事项,需要的朋友可以参考下