利用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); }
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注亿速云行业资讯频道,感谢您对亿速云的支持。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。