[問題] 物件欄位比對

看板java作者 (.....)時間13年前 (2012/04/13 17:16), 編輯推噓3(309)
留言12則, 5人參與, 最新討論串1/1
最近遇到一個問題,就是我有一個包含許多欄位的物件 欄位可能又是另外一個物件或甚至是 List 不過在比對上其實有點傷腦筋...想了很久不知道有沒有比較好的方法... 不知道各位大大有沒有處理過比對這些物件欄位的經驗 除了暴力法一個一個欄位比對外,是否有什麼方法可以得知 兩個物件的哪些欄位被異動過,且可以知道異動前和異動後的資料分別為何 goo來goo去 都是比較 Java 物件是否一樣的資料....@@ -- 這種需求感覺應該會常常遇到才對....? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.71.217.243

04/13 17:28, , 1F
用java reflection...
04/13 17:28, 1F

04/13 17:29, , 2F
你是比對欄位之外,也要找出各別物件的各個欄位的異動歷程嗎?
04/13 17:29, 2F

04/13 17:32, , 3F
比對欄位的話就是1樓說的反射,可以做個class幫你一一遞迴比對
04/13 17:32, 3F

04/13 19:41, , 4F
Overridde Comparable hash code
04/13 19:41, 4F

04/13 20:07, , 5F
請問可以解說清楚一點嘛? 異動前後是誰的異動 ? 哪兩個obj?
04/13 20:07, 5F

04/13 20:33, , 6F
應該說是兩個相同物件 裡面的欄位值可能不一樣 要比較差異點
04/13 20:33, 6F

04/13 20:35, , 7F
這裡說的相同 指的是class相同
04/13 20:35, 7F

04/13 20:37, , 8F
我也想過用反射 不過似乎不好做且速度慢 不知道有沒更好方式
04/13 20:37, 8F

04/13 22:59, , 9F
如果是這樣,就用別人寫好的。 apache common有equalBuilder
04/13 22:59, 9F

04/13 23:02, , 10F
話說reflection也沒有太慢,除非真的需要,不用考慮這個
04/13 23:02, 10F

04/13 23:03, , 11F
"這個"指的是reflection太慢
04/13 23:03, 11F

04/14 02:27, , 12F
感謝a大 我來看看equalBuilder~~:D
04/14 02:27, 12F
文章代碼(AID): #1FX-xzC9 (java)