java 反射实现类
时间: 2023-09-13 21:05:06 浏览: 87
Java中的反射
Java反射机制可以通过Class类来获取一个类的信息,包括类的名称、属性、方法等。以下是一个示例,演示如何使用Java反射来获取类的信息:
```java
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class ReflectionDemo {
public static void main(String[] args) throws Exception {
// 获取Person类的Class对象
Class personClass = Person.class;
// 获取Person类的public属性
Field[] fields = personClass.getFields();
for (Field field : fields) {
System.out.println(field.getName());
}
// 获取Person类的所有属性
Field[] declaredFields = personClass.getDeclaredFields();
for (Field field : declaredFields) {
System.out.println(field.getName());
}
// 获取Person类的public方法
Method[] methods = personClass.getMethods();
for (Method method : methods) {
System.out.println(method.getName());
}
// 获取Person类的指定方法
Method method = personClass.getMethod("eat", String.class);
System.out.println(method.getName());
// 创建Person对象
Person person = new Person();
// 调用Person对象的eat方法
method.invoke(person, "apple");
}
}
class Person {
public String name;
private int age;
public void eat(String food) {
System.out.println("I am eating " + food);
}
}
```
在上面的示例中,我们首先获取了Person类的Class对象,然后使用Class对象的getFields和getDeclaredFields方法获取类的属性信息,使用getMethods方法获取类的方法信息,使用getMethod方法获取指定方法的信息。最后,我们创建了一个Person对象,并使用反射机制调用了Person对象的eat方法。
阅读全文