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;
		
	}
}