根据您的要求,您可以按如下方式执行此操作。
您可以将两个数据库行分配给两个对象。例如:样本对象
public class SampleObject {
private String name;
private int age;
private String email;
public SampleObject(String name, int age, String email) {
this.name = name;
this.age = age;
this.email = email;
}
.
.
我想你的结果也会成为一个对象。例如:结果对象
public class ResultObject {
private String fieldName;
private String OldObjectValue;
private String NewObjectValue;
.
.
您可以在 SampleObject 中定义一个compareField 类型的方法
public List<ResultObject> compareFields(SampleObject object) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException{
List<ResultObject> resultList = new ArrayList<ResultObject>();
Field[] fields = this.getClass().getDeclaredFields();
for(Field field : fields){
if(!field.get(this).equals(field.get(object))){
ResultObject resultObject = new ResultObject();
resultObject.setFieldName(field.getName());
resultObject.setOldObjectValue(field.get(this).toString());
resultObject.setNewObjectValue(field.get(object).toString());
resultList.add(resultObject);
}
}
return resultList;
}
然后你就可以让它工作了。
SampleObject object1 = new SampleObject("ABC", 29, "[email protected] /cdn-cgi/l/email-protection");
SampleObject object2 = new SampleObject("XYZ", 29, "[email protected] /cdn-cgi/l/email-protection");
List<ResultObject> resultList = object1.compareFields(object2);
Thanks