通过Java反射调用方法详解编程语言

通过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 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/16904.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论