W3Cschool
恭喜您成為首批注冊(cè)用戶(hù)
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
通過(guò)在類(lèi)成員變量上聲明@PropertyState
注解,并使用PropertyStateSupport
工具類(lèi)配合,便可以輕松實(shí)現(xiàn)對(duì)類(lèi)成員屬性的變化情況進(jìn)行監(jiān)控。
@PropertyState注解:聲明記錄類(lèi)成員屬性值的變化;
propertyName:成員屬性名稱(chēng),默認(rèn)為空則采用當(dāng)前成員名稱(chēng);
aliasName:自定義別名,默認(rèn)為空;
setterName:成員屬性SET方法名稱(chēng),默認(rèn)為空;
示例代碼:
public class PropertyStateTest { @PropertyState(propertyName = "user_name") private String username; @PropertyState(aliasName = "年齡") private int age; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public static void main(String[] args) throws Exception { PropertyStateTest _original = new PropertyStateTest(); _original.setUsername("123456"); _original.setAge(20); // PropertyStateSupport<PropertyStateTest> _support = PropertyStateSupport.create(_original); PropertyStateTest _new = _support.bind(); _new.setUsername("YMPer"); _new.setAge(30); // System.out.println("發(fā)生變更的字段名集合: " + Arrays.asList(_support.getChangedPropertyNames())); for (PropertyStateSupport.PropertyStateMeta _meta : _support.getChangedProperties()) { System.out.println("已將" + StringUtils.defaultIfBlank(_meta.getAliasName(), _meta.getPropertyName()) + "由" + _meta.getOriginalValue() + "變更為" + _meta.getNewValue()); } } }
執(zhí)行結(jié)果:
發(fā)生變更的字段名集合: [user_name, age] 已將user_name由123456變更為YMPer 已將年齡由20變更為30
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: