日期:2014-05-20  浏览次数:20733 次

反射到底有什么用??????????????????
我知道的反射的作用就是“查找类的方法或属性”。

如果只是为了查找类的方法和属性,借助于Eclipse不是也可以看到么?

关于反射,我在项目中用到的就是JavaBean属性的复制,因为一些原因,不能使用beanutils,所以使用了反射来复制JavaBean的值。反射还有其他用处么?

------解决方案--------------------
如果只是为了查找类的方法和属性,借助于Eclipse不是也可以看到么?

你确定你在说什么?
------解决方案--------------------
Eclipse查找类的属性和方法不也是用反射做的吗,最明显的反射可以用来做框架,ssh等
------解决方案--------------------
动态地加载某个类,调用其某个方法或属性。
------解决方案--------------------
官方一点的说法就是:
反射允许程序创建和控制任何类的对象,无需提前硬编码目标类。这些特性使得反射特别适用于创建以非常普通的方式与对象协作的库。Java reflection 非常有用,它使类和数据结构能按名称动态检索相关信息,并允许在运行着的程序中操作这些信息。

通俗点的说法就是:
提供了对包括当前未知类的动态灵活的处理能力,比如没有反射的话,现在用于Web开发的很多框架就做不出来。
------解决方案--------------------
主要用到的地方还是写工具,写框架。。
------解决方案--------------------
JAVA反射机制主要提供了以下功能:
1.在运行时判断任意一个对象所属的类
2.在运行时构造任意一个类的对象
3.在运行时判断任意一个类所具有的成员变量和方法(通过反射甚至可以调用private方法)
4.在运行时调用任意一个对象的方法(*****注意:前提都是在运行时,而不是在编译时)
------解决方案--------------------
探讨
哦,好吧,我表达错误 = =
请教下,除了复制JavaBean,还有什么时候可能用到反射?

------解决方案--------------------
框架本身也是个很典型的应用反射的例子,你不要只看到JavaBean,框架从url到Action的映射、filter的定义等等也是通过反射做到的,
------解决方案--------------------
反射有什么用,就好比金庸小说中的内功,再犀利的招式没有内功就发挥不出其应用的功效
典型的SSH 中就使用到了大量的反射,spring的依赖注入和aop,s2的拦截器等等

反射也有不好的地方 使运行状态中的java属性和方法可以随便调用,存在安全性的问题;相对而言消耗的内存也要多的多


------解决方案--------------------
对于初学者而言 只要清楚反射提供了一种创建类的手段就可以了
在实际的开发过程中也用得不多

当你开发三四年之后 运用了框架技术
你就知道 反射虽小 功能强大啊