Java遍历对象属性

java.util.Calendar clndr = java.util.Calendar.getInstance();
Class cls = clndr.getClass();

System.out.println(cls.getName());
java.lang.reflect.Field[] flds = cls.getFields();

if ( flds != null )
{
    for ( int i = 0; i < flds.length; i++ )
    {
        System.out.println(flds[i].getName() + " - " + flds[i].get(clndr));
    }
}

以上以Calendar为例遍历对象的所有属性(field);

如果要得到private属性:public Field[] getDeclaredFields();


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java递归遍历对象属性和子对象是指在一个对象递归地遍历所有属性,包括子对象属性。 首先,我们需要编写一个递归方法,该方法可以接收一个对象作为参数。在方法内部,我们首先通过反射获取当前对象的所有属性。然后,我们可以通过遍历这些属性,对于每个属性就行一些操作,比如输出属性名称和值。 如果属性是一个对象类型,我们可以对该属性也进行递归调用,以对子对象属性进行遍历。 下面是一个简单的示例代码: ```java import java.lang.reflect.Field; public class ObjectTraversal { public static void traverseObject(Object obj) throws IllegalAccessException { Class<?> clazz = obj.getClass(); Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) { field.setAccessible(true); System.out.println("属性名称:" + field.getName()); System.out.println("属性值:" + field.get(obj)); if (field.getType().isAssignableFrom(Object.class)) { traverseObject(field.get(obj)); // 递归遍历对象 } } } public static void main(String[] args) throws IllegalAccessException { // 假设我们有一个Person对象 Person person = new Person("张三", 20, new Address("北京", "朝阳区")); // 使用递归遍历对象属性和子对象属性 traverseObject(person); } } class Person { private String name; private int age; private Address address; // 省略构造方法和getter/setter方法 public Person(String name, int age, Address address) { this.name = name; this.age = age; this.address = address; } } class Address { private String city; private String district; // 省略构造方法和getter/setter方法 public Address(String city, String district) { this.city = city; this.district = district; } } ``` 以上代码,我们定义了一个`traverseObject`方法来递归遍历对象属性和子对象属性。然后在main方法创建了一个Person对象,并使用`traverseObject`方法对其进行遍历。输出结果如下: ``` 属性名称:name 属性值:张三 属性名称:age 属性值:20 属性名称:address 属性值:Address@1b6d3586 属性名称:city 属性值:北京 属性名称:district 属性值:朝阳区 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值