情景:在开发过程中,需要将两个对象实体的值进行对比
处理:使用BeanUtils.describe将两个对象转换成Map进行遍历对比数据,注意:
BeanUtils是org.apache.commons.beanutils下的
问题:发现BeanUtils.describe转换后的Map的泛型是<String,String>此时获取到的字段如果是数组类型的话只获取了第一个元素
解决:使用PropertyUtils.describe方法的到的Map的泛型是<String,Object>此时可以正常获取到数据
BeanUtils.describe和PropertyUtils.describe都是将对象转换成Map,如果对象的字段存在数组或者集合类型的,使用PropertyUtils.describe。
Map<String, String> map = BeanUtils.describe(Object bean);
Map<String, Object> map = PropertyUtils.describe(Object bean);
代码如下:
@Data
public class Person implements Serializable {//实体
/**
*
*/
private static final long serialVersionUID = 3193754045080382621L;
private String