duansky'weblog

统计

留言簿(3)

友情链接

阅读排行榜

评论排行榜

通过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 阅读(1995) 评论(1)  编辑  收藏 所属分类: Java

评论

# re: 通过Java反射调用方法[未登录] 2012-07-26 14:11 key

请告诉博主,他很帅!  回复  更多评论   


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


网站导航: