Java下的框架编程(3)--关于反射的碎话

王朝java/jsp·作者佚名  2006-01-27
窄屏简体版  字體: |||超大  

反射,所有教科书都正儿八经的讲了,这里只能再随便讲两句。

反射是一种让框架能够根据 "以字符串形式存在的信息" 来调用对象的属性和函数的技术,是Java对C++最大的进步之一---让框架编程真正走向平民化。MFC年代,无论侯捷如何深入浅出,还在念大学的我就是搞不懂那些注册"消息--函数映射"的魔法宏。

不过Java的反射也就是对着C++比较自豪而以,因为C#,Ruby,Python甚至php都标配了反射的功能。而且,人家的反射语法都是内嵌在基础Object类的,拿最弱的php来看:

$func_name="helloworld";

$foo->$func_name;

而Java,却搞出了Class,Methed, Field,Constructor这么一大堆类出来。本来这是Java设计师很严谨,很cool的体现,问题是它居然不提供一种集成的简便的写法......相同的情形还出现在Java的I/O 类库里。

微软这方面就做得好些,懂得讨好开发人员。

因为Java的无情,就搞得大家的项目里要自制BeanUtils了。幸亏Apache Jakarta Commons 已经做了一个比较好的,可以直接使用--以前写的介绍文章

另外Spring也做了一个。

闲得没事做的,还可以emule一本〈Relection in action〉回来看。

而C++下面的"反射",见我偶像di文章。另还有一个比较BT的C++框架叫ACDK的,把自己整得和Java很像,有反射和垃圾收集,甚至和JSDK差不多的线程,Unicode,I/O,网络,XML API。可惜的是,即使到了C++0x, B大叔还是不准备在语言级支持反射。

系列文章:

Java下的框架编写(1)--序

Java下的框架编程(2)-对泛型的无聊用法和为擦拭法站台

Java下的框架编程(3)--关于反射的碎话

Java下的框架编程(4)--Annotation vs XML vs Interface 最新一Round

Java下的框架编程(5)--cglib应用

Java下的框架编程(6)--asm(待写)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航