Java反射问题

通过java的反射,Field获得某一字段,然后可以调用Field的set()方法。与不用反射,直接调用字段的set方法有什么区别?反射的意义又是什么?... 通过java的反射,Field获得某一字段,然后可以调用Field的set()方法。与不用反射,直接调用字段的set方法有什么区别?反射的意义又是什么? 展开
 我来答
中华名女支
2013-09-04 · TA获得超过292个赞
知道答主
回答量:56
采纳率:100%
帮助的人:46.8万
展开全部
一个标准的javabean类所有字段都是私有的.然后提供该字段的GET,SET.
这个是前提!
1.该字段的SET 方法 有可能加了拦截代码.有些值不赋进去.例如你做一个注册.要填性别的时候就只能填男女.其他不能填的就会用拦截代码拦截掉.
2.如果你用反射,就有方法直接访问那个字段,无论那字段是否私有.赋值的时候用的是JAVA反射包里Field类(java.lang.reflect.Field)里提供的SET方法其实就相当于直接赋值.不用经过其他拦截代码.即不用经类本身字段的SET方法
3.反射的意义体现了它能对项目的旷展性上.
例如你要实例化一个业务类.
普通:Demo d = new Demo();
------------------------------------
反射:Demo d= Class.forName(`类全名`);//可以直接通过类名就实例化一个对象,不用直接NEW
//而类名可以写在配置文件上面.用IO.读进来用就可以了.

//这样写得话,到时候要升级业务需求的时候,要换一个实现类,就不用其他改动源码,把新写好的业类类全名直接写在配置文件上就可以了
皇甫q
2013-09-04
知道答主
回答量:31
采纳率:0%
帮助的人:26.6万
展开全部
反射可以突破私有变量的限制!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-04
展开全部
在你不知道该类的情况下、编译时没有该类的引用的情况下,用反射。

写代码时,都有现在的类,就不用反射了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式