Java代码写一个反射
时间: 2024-05-08 09:17:28 浏览: 93
这是一个使用Java反射的示例代码:
```java
import java.lang.reflect.*;
public class ReflectionExample {
public static void main(String[] args) {
try {
// 获取Person类的Class对象
Class<?> personClass = Class.forName("Person");
// 获取Person类的构造方法
Constructor<?> constructor = personClass.getConstructor(String.class, int.class);
// 使用构造方法创建Person类的实例
Object person = constructor.newInstance("Tom", 20);
// 获取Person类的name字段
Field nameField = personClass.getDeclaredField("name");
// 设置name字段的值
nameField.setAccessible(true);
nameField.set(person, "Jerry");
// 获取Person类的sayHello方法
Method sayHelloMethod = personClass.getDeclaredMethod("sayHello");
// 调用sayHello方法
sayHelloMethod.setAccessible(true);
sayHelloMethod.invoke(person);
} catch (ClassNotFoundException | NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchFieldException e) {
e.printStackTrace();
}
}
}
class Person {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
private void sayHello() {
System.out.println("Hello, my name is " + name + ", I'm " + age + " years old.");
}
}
```
这个例子中,我们使用反射来获取Person类的构造方法、字段和方法,并创建Person类的实例,设置字段的值,调用方法。这展示了反射的一些基本用法。
阅读全文