posts - 42,  comments - 84,  trackbacks - 0

  开发的时候有时候会碰到这样的情况,我们在写程序的时候并不知道需要调用某个对象的哪个方法,只有程序运行后,我们才能够知道。或许我们需要根据客户端传过来的某个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();
                    }

                }

            }

    }

}

posted on 2008-06-05 16:36 Dong 阅读(10165) 评论(7)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航:
博客园   IT新闻   Chat2DB   C++博客   博问