论坛首页 Java企业应用论坛

学习Spring必学的Java基础知识(1)----反射

浏览 169589 次
该帖已经被评为良好帖
作者 正文
   发表时间:2012-06-21  
stamen 写道
rox 写道
kimimo 写道
aiyan3344 写道
rox 写道
抱歉,又点错了,把隐藏当收藏点了。
唉,年纪大了!

嗯,哥们你年龄是不小了,看到你好几次这样了。

哈哈,监督这哥们,避免下次又把收藏当隐藏了

唉,每次看到好帖子,就习惯去点收藏。
眼神不好,看到个“藏”字就点了,没弹出窗,不对,发现下面一排还有一个,后悔都来不及。
每次点错,俺只有回帖认了。
忘各位楼主海涵啊!呵呵!


哈,没事,这种小错,还不至于把帖子直接隐藏了 ,不过,建议iteye可以把“隐藏帖”改为“垃圾帖”,这样就和“收藏”明显区分开了。

防止点错,点隐藏加个确认对话框
0 请登录后投票
   发表时间:2012-06-21  
okjbc 写道
具体看反射怎么合理的使用了。貌似现在很多都在使用反射。


按张龙老师的名言来说:No reflection, No more framework! 
0 请登录后投票
   发表时间:2012-06-21  
gongrunlian 写道
stamen 写道
gongrunlian 写道
//③通过反射方法设置属性 
18.        Method setBrand = clazz.getMethod("setBrand",String.class);         
19.        setBrand.invoke(car,"红旗CA72");       
20.        Method setColor = clazz.getMethod("setColor",String.class); 
21.        setColor.invoke(car,"黑色");       
22.        Method setMaxSpeed = clazz.getMethod("setMaxSpeed",int.class); 
23.        setMaxSpeed.invoke(car,200);         
24.        return car; 
我有一个疑惑求解释
看上代码既然知道有setBrand这个方法为什么还要用invoke赋值?


这是反射调用的API 没有为什么 哈

可能你没有完全明白我的意思 我意思是既然知道有setBrand这个方法我就可以car.setBrand("红旗CA72")这样赋值就不要Method setBrand = clazz.getMethod("setBrand",String.class);         
        setBrand.invoke(car,"红旗CA72");这样赋值了,就是说我预先并不知道有这个方法(按照你这样写好像预先知道了有这样一个方法了,就可以car.setBrand("红旗CA72")这样赋值)要通过反射看这个class有些什么方法 我只是有点不解 还请楼主谅解!


我的理解是,使用反射方式调用方法,有以下原因:
1. 比如此方法是private的,你不能直接调用,反射可以;
2. 比如你只知道此方法名的规则,运行时才知道具体方法,你无法直接调用。
例如setter方法,框架在运行时才知道某类有“name”属性,根据setter规则构造方法名“setName”,这时只能通过反射来调用;

暂时想到这么多,大家来补充。
0 请登录后投票
   发表时间:2012-06-21  
我以为javayeye上再也出不了好文章,最近发现好文章又出来了,我也有来的理由了,哈哈
0 请登录后投票
   发表时间:2012-06-21  
yuebancanghai 写道
我以为javayeye上再也出不了好文章,最近发现好文章又出来了,我也有来的理由了,哈哈


。。。。。。。
0 请登录后投票
   发表时间:2012-06-23  
讲的不错,浅显易懂,最近正在实现自己的struts,也对反射有了一定的了解
0 请登录后投票
   发表时间:2012-06-26  
感覺這些代碼挺熟悉的,#24 好像早張孝祥的java基礎視頻里看到過#24
0 请登录后投票
   发表时间:2012-06-26  
lingfengaixixi 写道
感覺這些代碼挺熟悉的,#24 好像早張孝祥的java基礎視頻里看到過#24

#24小心孝祥老师来找你#17
0 请登录后投票
   发表时间:2012-06-26  
aiyan3344 写道
lingfengaixixi 写道
感覺這些代碼挺熟悉的,#24 好像早張孝祥的java基礎視頻里看到過#24

#24小心孝祥老师来找你#17

哈哈不怕,正好有些东西要问他呢
0 请登录后投票
   发表时间:2012-07-17   最后修改:2012-07-17
支持一下,有时间整理并共享信息,既帮助大家也提高自己。
希望ITeye能多点这样的技术爱好者。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics