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オブジェクト表現の下側の方法を呼び出します。個別パラメータは、基本的なイメージと一致するように自動的に解凍され、基本的なパラメータと参照パラメータは、必要に応じて変換を呼び出す。