对象(实体类)获取属性/值转换为Array数组

注意:需要重写实体类的toString方法

public class BeanToArrayUtil {
    /**
     * 获取对象属性值转成Array
     * @param bean
     * @return
     */
    public static Object[] getFieldBeans(Object bean) {
        Map<String, Object> map = beanToArray(bean);
        return map.values().toArray(new Object[map.size()]);
    }

    /**
     * 获取对象属性转成Array
     * @param bean
     * @return
     */
    public static String[] getFieldNames(Object bean) {
        Map<String, Object> map = beanToArray(bean);
        return map.keySet().toArray(new String[map.size()]);
    }
    
    private static Map<String, Object> beanToArray(Object bean){
        Field[] fields = bean.getClass().getDeclaredFields();
        Map<String, Object> map = new HashMap<>();
        Field.setAccessible(fields, true);
        for (Field field : fields) {
            try {
                if (field.get(bean) == null) {continue;}
                map.put(field.getName(), field.get(bean));
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
        }
        return map;
    }
}
  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果您正在使用Java语言,那么通常情况下,数组实体类之间不能直接进行映射。这是因为数组是一种基本数据类型,而实体类是一个由多个属性组成的对象类型。一种解决方案是将数组封装在一个新的实体类中,然后再将这个新的实体类与原来的实体类进行映射。具体操作步骤如下: 1. 定义一个新的实体类,例如ArrayEntity,该类包含一个数组属性。 2. 在原来的实体类中也定义一个ArrayEntity属性,用来存储数组。 3. 在映射过程中,将原来的数组转换ArrayEntity对象,然后将这个对象给原来的ArrayEntity属性即可。 示例代码如下: ```java public class User { private String name; private int age; private ArrayEntity arrayEntity; // getter, setter, toString等方法 } public class ArrayEntity { private int[] array; // getter, setter, toString等方法 } // 假设有一个UserDto类用于传输数据 public class UserDto { private String name; private int age; private int[] array; // getter, setter, toString等方法 } // 将UserDto转换成User的方法 public User convertToUser(UserDto userDto) { User user = new User(); user.setName(userDto.getName()); user.setAge(userDto.getAge()); ArrayEntity arrayEntity = new ArrayEntity(); arrayEntity.setArray(userDto.getArray()); user.setArrayEntity(arrayEntity); return user; } ``` 在上述示例代码中,我们定义了一个User实体类和一个ArrayEntity实体类。User实体类包含一个ArrayEntity属性,用来存储数组。同时,我们还定义了一个UserDto类,用于传输数据。在convertToUser方法中,我们将UserDto对象转换成User对象。其中,我们将UserDto中的数组属性直接赋ArrayEntity对象数组属性,然后将ArrayEntity对象给User对象ArrayEntity属性。这样就实现了数组实体类之间的映射。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值