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

     反射是一种让框架能够根据 "以字符串形式存在的信息" 来调用对象的属性和函数的技术,是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(待写)