首页编程语言编程语言反射机制

编程语言反射机制

cysgjjcysgjj时间2024-07-22 15:31:24分类编程语言浏览17
导读:如何理解java中的反射?如何理解java中的反射?反射就是在运行期获取类型信息,Java反射更进一步,还允许修改一些信息。至于如何实现的,是在编译期间将相关信息(类型元数据)放在class文件中,在运行时候可以将这些信息封装成特定Java对象供系统使用。其实C++和Delphi等语言都可以提供(但程度稍低)RTTI信息供运行时使用,……...
  1. 如何理解java中的反射?

如何理解java中的反射

反射就是运行期获取类型信息Java反射更进一步,还允许修改一些信息。至于如何实现的,是在编译期间将相关信息(类型元数据)放在class文件中,在运行时可以将这些信息封装成特定JAVA对象系统使用。其实C++和Delphi等语言都可以提供(但程度稍低)RTTI信息供运行时使用,但是函数形式提供。

因为编译器在编译期知道所有的类型细节信息,所以,只要需要,任何语言都可以提供反射功能

反射机制提供的功能是很强大的 但是客观性和维护性很差一般反射用在 构造框架 以及工具开发等等但是实际开发软件运用的并不多下面是一个简单的例子package com.wqx.test4;public class Test {public void sayhello(String name){System.out.println("hello:"+name);}public static void main(String[] args) {try {//把test 这个类载入内存Class c=Class.forName("com.wqx.test4.Test");//创建这个类的实例Object obj=c.newInstance();//通过class来取得这个方法对象 并且声明 这个类的参数类型j***a.lang.reflect.Method method=c.getMethod("sayhello", Class.forName("j***a.lang.String"));//invoke 来执行方法对象 记得参数类型要跟这里的参数匹配method.invoke(obj, "wqx");} catch (Exception e) {// TODO: handle exception}}}

编程语言反射机制
图片来源网络,侵删)

J***A中的反射无处不在,不仅在jdk中存在,还在诸如spring,mybatis,设计模式等中广泛使用!

首先要知道的是,J***A可以算做编译型语言,大多数的类,方法都在编译时已经明确,这显然不能满足于我们所有的需求使用反射就可以在运行时动态加载,通过类可以构造对象,准确的知道它的属性,方法等全部信息!


J***A中的反射方式有以下几种:

编程语言反射机制
(图片来源网络,侵删)

①Class.forName(“类全路径”);

②对象名.getClass

③基本类型的包装类:Boolean.TYPE,Integer.TYPE等!

编程语言反射机制
(图片来源网络,侵删)

反射的作用有:

1,可以在运行时动态获得对象,

2,在运行时动态获取一个类的构造器,方法,变量,注解等!

反射就是为了程序运行中的时候通过反射获取类的方法和属性,可以进行修改,现在大众都知道的spring框架里面的IOC就是应用了反射创建类,当业务需要的时候可以直接注入,不需要自己去创建

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/16587.html

反射可以行时
互联网技术范围 互联网技术招标公告