最近用到java 反射 於是在網上搜索下具體如何使用,感覺網上講的太詳細反而顯得複雜了,貼上自己的代碼以供以後參考
package com.ld;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
public class Person
{
private String name;
private String age;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getAge()
{
return age;
}
public void setAge(String age)
{
this.age = age;
}
public static void main(String[] args) throws ClassNotFoundException, SecurityException, NoSuchFieldException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException, InstantiationException
{
Class owner = Class.forName(Person.class.getName());
String str = "aaa";
Object obj = owner.newInstance();
// 參數 調用的方法名稱,方法參數的類型所屬的類
Method m = owner.getMethod("setName",String.class);
// 調用方法的對象,方法參數值
m.invoke(obj, str);
m = owner.getMethod("getName",null);
String name = (String) m.invoke(obj, null);
System.out.println(name);
}
}