duansky'weblog

统计

留言簿(1)

阅读排行榜

评论排行榜

通过Java反射调用方法

这是个测试用的例子,通过反射调用对象的方法。

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

/** 
* Created by IntelliJ IDEA. 
* File: TestRef.java 
* User: leizhimin 
* Date: 2008-1-28 14:48:44 
*/
 
public class TestRef 

    
public static void main(String args[]) throws NoSuchMethodException, IllegalAccessException, InvocationTargetException 
        Foo foo 
= new Foo("这个一个Foo对象!"); 
        Class clazz 
= foo.getClass(); 
        Method m1 
= clazz.getDeclaredMethod("outInfo"); 
        Method m2 
= clazz.getDeclaredMethod("setMsg", String.class); 
        Method m3 
= clazz.getDeclaredMethod("getMsg"); 
        m1.invoke(foo); 
        m2.invoke(foo, 
"重新设置msg信息!"); 
        String msg 
= (String) m3.invoke(foo); 
        System.out.println(msg); 
    }
 
}
 

class Foo 
    
private String msg; 

    
public Foo(String msg) 
        
this.msg = msg; 
    }
 

    
public void setMsg(String msg) 
        
this.msg = msg; 
    }
 

    
public String getMsg() 
        
return msg; 
    }
 

    
public void outInfo() 
        System.out.println(
"这是测试Java反射的测试类"); 
    }
 
}
控制台输出结果:

这是测试Java反射的测试类 
重新设置msg信息! 

Process finished with exit code 
0


转自:http://lavasoft.blog.51cto.com/62575/61002

posted on 2008-08-04 16:01 duansky 阅读(53) 评论(0)  编辑  收藏 所属分类: Java


标题  
姓名  
主页
验证码 *  
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
 
 

相关链接:
网站导航: