`
geeksun
  • 浏览: 952993 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

反射机制之---概念

阅读更多

反射机制是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语言在很大程序上增强了灵活性,在语言的动态的功能扩展上有了更多的想象力和空间。

 

 

 

分享到:
评论

相关推荐

    C++反射机制实现

    NULL 博文链接:https://mengdejun.iteye.com/blog/932773

    Java高级程序设计实战教程第三章-Java反射机制.pptx

    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 反射机制浅析

    Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。...

    java中反射的概念

    通过学习后,保证初学者对反射有一个很好的理解,有助于之后对反射的进一步...其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。

    JAVA新特性--java反射、映射

    可以说,实现了反射机制的系统都具有开放性,但具有开放性的系统并不一定采用了反射机制,开放性是反射系统的必要条件。一般来说,反射系统除了满足开放性条件外还必须满足原因连接(Causally-connected)。所谓原因...

    JavaSE进阶-08-反射机制1

    1.1 反射的基本概念 1.2 Java 中的类反射 2.2.1 2.2.2

    Java反射机制

    反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改...其中LEAD/LEAD++ 、OpenC++ 、MetaXa和OpenJava等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。

    简单谈谈python的反射机制

    下面结合一个web路由的实例来阐述python的反射机制的使用场景和核心本质。 一、前言 def f1(): print("f1是这个函数的名字!") s = "f1" print("%s是个字符串" % s)  在上面的代码中,我们必须区分两个概念,f1...

    Java反射机制(推荐)

    反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。

    候捷谈Java反射机制

    JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。...

    论文研究-基于反射机制的系统行为一致性判定模型研究.pdf

    对构件演化一致性问题进行了较为深入的研究,提出了正常运行一致性、兼容性一致性的概念,并把兼容性一致性分为观察一致性、弱一致性、强一致性,并基于反射机制建立了一种构件系统行为一致性判定模型,通过对对象...

    Java反射机制概念、原理与用法总结

    主要介绍了Java反射机制概念、原理与用法,较为详细的分析了java反射机制的概念、原理,并结合实例形式总结分析了java反射机制的具体使用方法与相关注意事项,需要的朋友可以参考下

    JAVA反射机制

    指程序可以访问、检测和修改它本身状态或行为的一种能力。...其中LEAD/LEAD++ 、Open C++ 、Meta Xa和Open Java等就是基于反射机制的语言。最近,反射机制也被应用到了视窗系统、操作系统和文件系统中。

    谈谈Java中的反射机制

    反射:是将一个类的各个部分封装为其他对象,这就是反射机制。 看着上面文邹邹的话语,想必大家并没有理解啥是反射。下面我们来通过一个例子来进行讲解。 我们来看一下我们的Java代码在计算机中经历的几个阶段: 第...

    JAVA Reflection(反射机制)

    Java 反射机制  反射机制简介  反射机制应用示例  简单的Ioc实现  代理模式  Java动态代理  简单的Aop实现  “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl...

    Java 反射机制原理与用法详解

    主要介绍了Java 反射机制原理与用法,结合实例形式详细分析了Java反射机制的相关概念、原理、基本使用方法及操作注意事项,需要的朋友可以参考下

    xml与反射.txt

    1 简述反射机制 反射是一种间接操作目标对象的机制,在程序程序运行时获取或者设置对象自身的信息。 只要给定类的名字,就可以通过反 射获取类的所有信息,接着便能调用它的任何一个方法和属性。 反射的步骤有哪些?...

    Java编程反射机制用法入门与实例总结

    主要介绍了Java编程反射机制用法,简单说明了反射机制的概念、原理并结合实例形式总结分析了java反射机制的简单使用方法与相关注意事项,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics