在Java中,記錄修改字段和修改值是我們經常會遇到的需求。假設我們有一個對象,該對象有很多字段,我們需要記錄每次修改了哪個字段以及修改后的值。
一種常見的解決方案是通過重寫對象的setter方法來記錄修改。我們可以在setter方法中記錄下該字段修改前的值和修改后的值,然后將字段名和修改前后的值儲存在一個集合中。
public class ExampleObject { private String field1; private int field2; private boolean field3; private MapmodificationMap = new HashMap<>(); public String getField1() { return field1; } public void setField1(String field1) { modificationMap.put("field1", new Object[]{this.field1, field1}); this.field1 = field1; } public int getField2() { return field2; } public void setField2(int field2) { modificationMap.put("field2", new Object[]{this.field2, field2}); this.field2 = field2; } public boolean isField3() { return field3; } public void setField3(boolean field3) { modificationMap.put("field3", new Object[]{this.field3, field3}); this.field3 = field3; } public Map getModificationMap() { return modificationMap; } }
在上述代碼中,我們新建了一個Map用于儲存每次修改的信息,其中鍵為字段名,值為修改前后的值組成的數組。然后在每個setter方法中,我們將修改信息添加到該Map中。
當需要獲取修改信息時,我們只需要調用getModificationMap方法即可得到儲存的所有修改信息。
上一篇ajax向元素中添加內容
下一篇css域名申請注冊流程