基于java中兩個對象屬性的比較
更新時間:2017年09月29日 08:36:44 作者:HeavenTang
下面小編就為大家?guī)硪黄趈ava中兩個對象屬性的比較。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
兩個對象進行比較相等,有兩種做法:
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的Spring框架的程序中使用JDBC API操作數(shù)據(jù)庫
這篇文章主要介紹了在Java的Spring框架的程序中使用JDBC API操作數(shù)據(jù)庫的方法,并通過示例展示了其存儲過程以及基本SQL語句的應用,需要的朋友可以參考下2015-12-12詳解java.lang.reflect.Modifier.isInterface()方法
這篇文章主要介紹了詳解java.lang.reflect.Modifier.isInterface()方法的相關資料,這里提供實例幫助大家理解這個方法的使用,需要的朋友可以參考下2017-09-09SpringMVC使用MultipartFile 實現(xiàn)異步上傳方法介紹
這篇文章主要介紹了SpringMVC使用MultipartFile 實現(xiàn)異步上傳方法介紹,涉及pom依賴的添加,配置文件的修改等具體操作代碼,需要的朋友可以了解下。2017-09-09Java JDBC批量執(zhí)行executeBatch方法詳解
這篇文章主要介紹了Java JDBC批量執(zhí)行executeBatch方法詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-08-08