反射の呼び声普通の方法


 Class           :
   

 -       :public Method[] getMethods();
 -        :public Method getMothod(String name,Object ...)



 import java.lang.reflect.Method;
    /**
     *       ,              。
     *           ,    Object            。
     *          getMethod() invoke()  
     * @author Administrator
     *
     */
    class Person1111{
    	private String name;
    	private int age ;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public int getAge() {
    		return age;
    	}
    	public void setAge(int age) {
    		this.age = age;
    	}
    }
    public class Class_reflact {
    	public static void main(String[] args) throws Exception {
    		String attribute = "name";//     ,       
    		String value = "hello";//  setName   hello
    		Class> cls = Class.forName("  .Person");//  Class   ,  Class    ,      
    		Object obj = cls.newInstance();//         
    		//  getMethod          ,"set"+setName(attribute)   setName, setName    String  .
    		//  getMethod()    setName()  
    		Method setMethod = cls.getMethod("set"+setName(attribute), String.class);
    		//System.out.println(setMethod);
    		//   Person  ,setName(String value);
    		//    setName()  ,     invoke()     ,      ,       ,     obj.
    		setMethod.invoke(obj,value);
    		//  getMethod          
    		Method getMethod = cls.getMethod("get"+setName(attribute));//getName()
    		System.out.println(getMethod);
    		//   Person  ,setName(String value);
    		Object invoke = getMethod.invoke(obj);//obj     
    		System.out.println(invoke);
    	}
    	public static String setName(String name){
    		return name.substring(0, 1).toUpperCase()+name.substring(1);//        ,       
    	}
    }
java.lang.reflect.methodでは、invoke(Object obj)方法の呼び出しサポートが提供されている。指定されたパラメータを持つ指定されたオブジェクトに対して、このMethodオブジェクト表現の下側の方法を呼び出します。個別パラメータは、基本的なイメージと一致するように自動的に解凍され、基本的なパラメータと参照パラメータは、必要に応じて変換を呼び出す。