龙空技术网

Java两个对象属性比较

动力节点Java培训 194

前言:

现在姐妹们对“java对比两个对象属性的变化”都比较珍视,朋友们都需要剖析一些“java对比两个对象属性的变化”的相关文章。那么小编同时在网上搜集了一些对于“java对比两个对象属性的变化””的相关内容,希望同学们能喜欢,我们一起来学习一下吧!

官方微信:动力节点Java学院

两个对象进行比较相等,有两种做法:

1,情况一:当仅仅只是判断两个对象是否相等时,只需重写equals()方法即可。这里就不用说明

2.情况二:当除了情况一之外,还需知道是那个属性不同,那么就需要采用类反射,具体代码如下:

public static void main(String[] args) {

A a = new A();

a.setUserName("a");

a.setPassword("p");

a.setQq("q");

a.setWechat("w");

A b = new A();b.setUserName("a");b.setPassword("p");b.setQq("q");b.setWechat("ww"); //只是比较两个对象是否相等,那么直接重写equals方法System.out.println( a.equals(b)); try { Map<String, String> maps = compare( a, b );System.out.println();} catch (Exception e) {e.printStackTrace();}}public static <T> Map<String, String> compare(T obj1, T Obj2)throws Exception { Map<String, String> result = new HashMap<String, String>();Field[] fs = obj1.getClass().getDeclaredFields(); for (Field f : fs) {f.setAccessible(true); Object v1 = f.get(obj1); Object v2 = f.get(Obj2); if( ! equals(v1, v2) ){result.put(f.getName(), String.valueOf(equals(v1, v2)));}} return result;}public static boolean equals(Object obj1, Object obj2) { if (obj1 == obj2) { return true;} if (obj1 == null || obj2 == null) { return false;} return obj1.equals(obj2);}

标签: #java对比两个对象属性的变化 #java对比两个对象的属性值是否相等 #java比较两个对象相等 #java比较两个对象相等的数据 #java 比较两个对象