2014-01-15 67 views
0

我正在使用GSON在getter setter類中映射JSON。這是工作。然而,爲了實現一個功能,我必須創建具有相同變量但不同類名的單獨的Getter Setter類。如何映射getter setter類的對象?

public class ABC{ 

    private int totalUsers; 

    public int getTotalUsers() { 
     return totalUsers; 
    } 
    public void setTotalUsers(int totalUsers) { 
     this.totalUsers = totalUsers; 
    } 
} 

二等: -

public class DEF{ 

    private int totalUsers; 

    public int getTotalUsers() { 
     return totalUsers; 
    } 
    public void setTotalUsers(int totalUsers) { 
     this.totalUsers = totalUsers; 
    } 
} 

現在的功能要求逼我在第二類從一流的保存價值。對於我所要做的: -

def.setTotalUsers(abc.getTotalUsers); // def and abc are objects of their classes 

與之相似,如果有很多變數,我必須爲他們做同樣的也這是非常乏味的。

有什麼辦法可以讓我將兩個類的對象等同起來,並且它們的值會自動被複制嗎?

+0

ABC <-> JSON <-> DEF? – djechlin

回答

1

我想,你想使用不同的類具有相同的值。沒有真正的解決方案,但有可能的方法。

例子:Copy constructors

public class ABC{ 
    public ABC(DEF def) { 
     // here copy the date form def 
    } 
} 

public class DEF{ 
    public DEF(ABC abc) { 
     // here copy the date form abc 
    } 
} 
0

製作ABC父類的DEF會做的伎倆。如果它適用於您的實施。

0

如果是正常使用第三方庫,然後嘗試這些..

BeanUtils阿帕奇百科全書使用copyProperties(對象,對象)方法。

Dozer適用於bean對話。

0

我認爲你應該是一個可以完成對象屬性copy.the代碼的工具。

//This sentence should be finish the properties copy,it could copy the source properties 
// to the dest properties but you should get an jar 
BeanUtils.copyProperties(java.lang.Object dest,java.lang.Object source); 
// You can get the tool of BeanUtils by this Url 
http://commons.apache.org/proper/commons-beanutils/