java 反射遍历对象
时间: 2023-06-21 18:11:11 浏览: 104
Java反射可以通过Class类的方法获取类的构造函数、属性、方法等信息,并且可以操作类的属性和方法。下面是使用Java反射遍历对象的示例代码:
```java
import java.lang.reflect.Field;
public class ObjectTraversal {
public static void main(String[] args) throws Exception {
Student student = new Student("Tom", 18, "male");
Class clazz = student.getClass(); // 获取对象的Class类
Field[] fields = clazz.getDeclaredFields(); // 获取对象的所有属性
for (Field field : fields) {
field.setAccessible(true); // 设置属性可访问(私有属性需要设置为可访问)
System.out.println(field.getName() + " : " + field.get(student)); // 打印属性名和属性值
}
}
}
class Student {
private String name;
private int age;
private String gender;
public Student(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getGender() {
return gender;
}
}
```
输出结果为:
```
name : Tom
age : 18
gender : male
```
上述代码中,首先创建了一个Student对象,然后通过Student对象的getClass()方法获取Student类的Class类,接着使用Class类的getDeclaredFields()方法获取Student类的所有属性,最后遍历属性并打印属性名和属性值。需要注意的是,私有属性需要设置为可访问。
阅读全文