最近用到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);
}
}