我爱java系列---java对象比较器,用于记录修改操作时修改的具体详情
Posted 少年攻城狮
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我爱java系列---java对象比较器,用于记录修改操作时修改的具体详情相关的知识,希望对你有一定的参考价值。
对象比较器
public class LogUtils<T> { /** * 对象比较器 * 比较结果eg:1、字段名称loginName,旧值:liu,新值:gu;2、字段名称address,旧值:hunan,新值:neimenggu * @param oldBean * @param newBean * @return */ public String compareObject(Object oldBean, Object newBean) { String str = ""; //if (oldBean instanceof SysConfServer && newBean instanceof SysConfServer) { T pojo1 = (T) oldBean; T pojo2 = (T) newBean; try { Class clazz = pojo1.getClass(); Field[] fields = pojo1.getClass().getDeclaredFields(); int i = 1; for (Field field : fields) { if ("serialVersionUID".equals(field.getName())) { continue; } PropertyDescriptor pd = new PropertyDescriptor(field.getName(), clazz); Method getMethod = pd.getReadMethod(); Object o1 = getMethod.invoke(pojo1); Object o2 = getMethod.invoke(pojo2); if (o1 == null || o2 == null) { continue; } if (!o1.toString().equals(o2.toString())) { if (i != 1) { str += ";"; } str += i + "、字段名称" + field.getName() + ",旧值:" + o1 + ",新值:" + o2; i++; } } } catch (Exception e) { e.printStackTrace(); } // } return str; } }
以上是关于我爱java系列---java对象比较器,用于记录修改操作时修改的具体详情的主要内容,如果未能解决你的问题,请参考以下文章