通過java反射比較兩個相同實體類屬性值的差異

2021-08-21 06:24:00 字數 532 閱讀 8389

此方法可以通過傳入兩個實體物件,乙個字串陣列(需要進行比較的實體類屬性名稱),返回兩個實體類屬性的差異

public class comparefileds 

// 只有兩個物件都是同一型別的才有可比性

if (obj1.getclass() == obj2.getclass())

if (objafter instanceof timestamp)

if (objbefore == null && objafter == null) else if (objbefore == null && objafter != null)

// 比較這兩個值是否相等,不等則放入map

if (!objbefore.equals(objafter)) }}

}return map;

} catch (exception e)

}}

注:以上string型別陣列這個引數可將其改為不進行比較的屬性列表,要對應修改comparefileds中的判斷條件即可。

java中比較兩個map是否相同

對於所有繼承於abstractmap的map類 基本上jdk中的map都繼承了 直接使用map.equals 即可 原始碼解析 abstractmap重寫了equals方法,保證對兩個相同內容的map呼叫equals比較結果為真,原始碼如下 public boolean equals object ...

如何利用反射比較兩個物件完全相同

go 語言中提供了乙個函式可以完成此項功能 func deepequal x,y inte ce booldeepequal函式的引數是兩個inte ce,實際上也就是可以輸入任意型別,輸出 true 或者 flase 表示輸入的兩個變數是否是 深度 相等。先明白一點,如果是不同的型別,即使是底層型...

Java中比較兩個物件是否相同

class person extends object 判斷是否是同齡人。書寫 順序 1 2 3 4 public boolean equals object obj public boolean compare person p class dog 定義乙個異常語句 public class ob...