通過Java反射調用無參數方法,這是個測試用的例子,通過反射調用對象的方法,代碼如下:
import?java.lang.reflect.Method;?import?java.lang.reflect.InvocationTargetException;?
/**?
*?Created?by?IntelliJ?IDEA.?
*?File:?TestRef.java?
*?User:?Administrator
*?Date:?2015-7-10?16:28: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