A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© BlackHorse001 中级黑马   /  2015-9-3 17:42  /  239 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  

JAVA 反射机制的简单应用

  开发的时候有时候会碰到这样的情况,我们在写程序的时候并不知道需要调用某个对象的哪个方法,只有程序运行后,我们才能够知道。或许我们需要根据客户端传过来的某个String 参数的值来判断我们应该执行哪个方法。在这种情况下JAVA 的反射执行就可以帮上忙了。下面是我做的一个简单的测试代码,提供给大家做个参考。

import  java.lang.reflect.InvocationTargetException;
import  java.lang.reflect.Method;

/**
*  @author  Dong
*  测试 JAVA reflect 机制
*/
public   class  TestRef {
     /**
     *  @param  args
     */
     public   static   void  main(String[] args) {
            TestBean test =  new  TestBean();
            Method[] methods = test.getClass().getMethods();
            test.setAbc("---");
             for ( int  i=0;i<methods.length;i++) {
                 if (methods[i].getName().equalsIgnoreCase("getabc")) {
                     try   {
                        System.out.println(methods[i].invoke(test));
                    }  catch  (IllegalArgumentException e)  {
                        e.printStackTrace();
                    }  catch  (IllegalAccessException e)  {
                        e.printStackTrace();
                    }  catch  (InvocationTargetException e)  {
                        e.printStackTrace();
                    }
                }
            }
    }
}
  

2 个回复

倒序浏览
我觉得面向对象其中就是包含了大量的面向过程,封装成了对象,方便去指挥,只是,我也感觉拿到一个问题不知如何去下手,这一点没有思路

点评

是的,思路非常对,其实面向对象就是从面向过程发展而来,将过程封装成对象,处理问题不在找功能模块,而是找有这功能的对象  发表于 2015-9-4 09:11
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马