JAvaメソッド名呼び出しメソッドにより、大量の変数に値を割り当て、変数値を取得
1883 ワード
package my;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
// :
//set(String methodname,String value) String( ) ,
//get(String methodname)
//
public class Reflect {
//
private Object obj;
public Reflect(Object obj){
this.obj=obj;
}
//method ,value ( )
public void set(String methodname,String value){
try {
//
Method m=obj.getClass().getDeclaredMethod(methodname, String.class);
// (value )
m.invoke(obj, value);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public String get(String methodname){
String value=null;
try {
Method m=obj.getClass().getMethod(methodname);
value=(String) m.invoke(obj);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchMethodException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvocationTargetException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return value;
}
}