java的反射机制

JAVA的反射机制

java语言和其他语言相比,一个很重要的特性就是java的反射机制,反射机制为软件开发带来了一种新的思想和架构,下面是我对java反射机制的一些作用的总结。

反射就是程序运行过程中,对于一个任意一个类,可以动态创建它的对象,获取类的属性和方法。对于任意一个对象,可以获取该对象所属的类,调用该对象的方法。这种动态的获取和调用对象的方法的特性叫java的反射机制。

反射(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为。

反射的作用:

在运行时检测对象的类型;

动态构造某个类的对象;

检测类的属性和方法;

任意调用对象的方法;

修改构造函数、方法、属性的可见性;

java反射的使用

// 使用反射

Class<?> c = Class.forName(“classpath.and.classname”);

Object dog = c.newInstance();

Method m = c.getDeclaredMethod(“bark”, new Class<?>[0]);

m.invoke(dog);

反射在JAVA EE框架中的使用

一些常用的开源框架,比如Spring等都使用到了反射

例如,Spring框架使用如下的配置文件:

<bean id=”someID” class=”com.programcreek.Foo”>

    <property name=”someField” value=”someValue” />

</bean>

初始化spring容器(ApplicationContext)时,读取配置文件,解析到这个bean时,会根据Class.forName("com.programcreek.Foo")来加载该类,产生Class对象,并创建该类的对象,根据反射获取<property>元素所对应的属性的setter()方法对该对象的属性进行赋值初始化。

此外,在web应用中,servlet对象的创建也使用了java的反射机制。例如: 在web.xml进行如下的配置:

<servlet>

    <servlet-name>someServlet</servlet-name>

    <servlet-class>com.programcreek.WhyReflectionServlet</servlet-class>

<servlet>

在应用服务器(tomcat、jboss等)启动,加载并解析该web.xml文件时,根据反射机制创建并初始化该servlet。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值