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反射的測試類");   
    }   
}
相關文章
相關標籤/搜索