假設你的對象是「標準的」java bean,它們的屬性有getter和setter,Spring在其BeanUtils class中有幾個實用方法可以提供幫助。這兩種方法都被命名爲copyProperties
,它們都用於將屬性從一個對象複製到另一個對象。 One of the methods可讓您指定屬性的白名單,the other可讓您指定黑名單。通過這些方法,你可以定義一個接口或者,要麼應該或不應該被複制到從服務器接收到的級別,然後讓複製爲你做過的屬性列表 - 像這樣:
interface LevelPropertiesToMerge {
void setPropertyOne(String something);
void setPropertyTwo(int somethingElse);
}
// serialization code on client
Level fromServer = ...;
Level fromClient = ...;
BeanUtils.copyProperties(fromClient, fromServer, LevelPropertiesToMerge.class);
或:
// serialization code on client
Level fromServer = ...;
Level fromClient = ...;
BeanUtils.copyProperties(fromClient, fromServer,
new String[] {"propertyOneToIgnore", "propertyTwoToIgnore"});
謝謝瑞安,我試試這個。 – Chris 2013-03-04 04:09:05