编写一段程序,使用java反射中的invoke方法对于Person类调用其setter和getter。
时间: 2024-03-15 09:46:29 浏览: 71
利用java反射机制实现自动调用类的简单方法
好的,下面是使用Java反射对Person类调用其setter和getter的示例代码:
```java
import java.lang.reflect.Method;
public class ReflectDemo {
public static void main(String[] args) throws Exception {
// 创建Person对象
Person person = new Person();
// 获取Person类的Class对象
Class<?> cls = person.getClass();
// 通过Class对象获取setName方法
Method setNameMethod = cls.getMethod("setName", String.class);
// 调用setName方法设置name属性
setNameMethod.invoke(person, "Tom");
// 通过Class对象获取setAge方法
Method setAgeMethod = cls.getMethod("setAge", int.class);
// 调用setAge方法设置age属性
setAgeMethod.invoke(person, 18);
// 通过Class对象获取getName方法
Method getNameMethod = cls.getMethod("getName");
// 调用getName方法获取name属性
String name = (String) getNameMethod.invoke(person);
System.out.println("Name: " + name);
// 通过Class对象获取getAge方法
Method getAgeMethod = cls.getMethod("getAge");
// 调用getAge方法获取age属性
int age = (int) getAgeMethod.invoke(person);
System.out.println("Age: " + age);
}
}
class Person {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
```
在上面的代码中,我们使用Class对象的getMethod方法获取Person类的setter和getter方法,并通过invoke方法调用这些方法。这样就可以使用反射来动态地访问和修改对象的属性了。
阅读全文