当前位置 博文首页 > 管子(zero)的杂乱空间:JAVA反射深入理解

    管子(zero)的杂乱空间:JAVA反射深入理解

    作者:[db:作者] 时间:2021-07-20 16:24

    Reflection是Java 程序开发语言的特征之一,它允许运行中的 Java 程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得 Java 类中各成员的名称并显示出来。 Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。

    JavaBean 是 reflection 的实际应用之一,它能让一些工具可视化的操作软件组件。这些工具通过 reflection 动态的载入并取得 Java 组件(类) 的属性。

    1. 一个简单的例子

    考虑下面这个简单的例子,让我们看看 reflection 是如何工作的。

    1. importjava.lang.reflect.*;
    2. publicclassDumpMethods{
    3. publicstaticvoidmain(Stringargs[]){
    4. try{
    5. Classc=Class.forName("java.util.Stack");
    6. Methodm[]=c.getDeclaredMethods();
    7. for(inti=0;i<m.length;i++)
    8. System.out.println(m[i].toString());
    9. }
    10. catch(Throwablee){
    11. System.err.println(e);
    12. }
    13. }
    14. }
    cs