题目: (1)定义一个标准的Person类,包含属性变量name,并包含属性对应的setXX/getXX方法(如setName方法和getName方法)、空参构造。 (2)使用反射的方式创建一个Person实例对象。 (3)使用反射方式调用setName()方法对name的值进行设置。 (4)设置之后,在通过反射方式执行getName()方法。
时间: 2023-11-27 13:55:03 浏览: 178
eclipse代码生成工具(源码+插件),根据对象的settter生成setxx(xx);赋值语句,快捷键Ctrl+`
以下是Java代码实现:
```java
import java.lang.reflect.Method;
import java.lang.reflect.Constructor;
public class Person {
private String name;
public Person() {
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return this.name;
}
public static void main(String[] args) throws Exception {
// 使用反射创建Person实例对象
Class<?> cls = Class.forName("Person");
Constructor<?> constructor = cls.getConstructor();
Object obj = constructor.newInstance();
// 使用反射调用setName方法设置name属性
Method setMethod = cls.getMethod("setName", String.class);
setMethod.invoke(obj, "Tom");
// 使用反射调用getName方法获取name属性
Method getMethod = cls.getMethod("getName");
Object name = getMethod.invoke(obj);
System.out.println("name = " + name);
}
}
```
输出结果为:
```
name = Tom
```
解释:
首先定义了一个`Person`类,包含了`name`属性和对应的`setName`和`getName`方法,使用反射的方式创建了一个`Person`实例对象,调用`setName`方法设置了`name`属性的值为`Tom`,再通过反射调用`getName`方法获取`name`属性的值并输出。
阅读全文