Java でオブジェクトのすべてのプロパティをイテレートする方法は?
オブジェクトのすべてのプロパティーを反復処理するには、Java のリフレクション メカニズムを使用できます。以下に、オブジェクトのすべてのプロパティーを反復処理する方法を示すサンプル コードを示します。
import java.lang.reflect.Field;
public class ObjectTraversalDemo {
public static void main(String[] args) {
// 创建一个示例对象
MyClass obj = new MyClass("张三", 18, "男");
// 获取对象的Class对象
Class<?> objClass = obj.getClass();
// 获取对象的所有属性
Field[] fields = objClass.getDeclaredFields();
// 遍历属性,并输出属性名和属性值
for (Field field : fields) {
field.setAccessible(true); // 设置可访问私有属性
try {
String fieldName = field.getName(); // 获取属性名
Object fieldValue = field.get(obj); // 获取属性值
System.out.println(fieldName + ": " + fieldValue);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}
}
class MyClass {
private String name;
private int age;
private String gender;
public MyClass(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
}
コードを実行すると、オブジェクトのすべてのプロパティ名とプロパティ値が出力されます。上記では、リフレクションを使用してオブジェクトの Class オブジェクトを取得し、getDeclaredFields() メソッドでオブジェクトのすべてのプロパティを取得し、field.setAccessible(true) でプロパティへのアクセスを許可し、field.get(obj) でプロパティの値を取得しています。