如何映射getter setter类的对象?

时间:2014-01-15 04:48:22

标签: java android

我正在使用GSON在getter setter类中映射JSON。这是工作。但是,为了实现功能,我必须使用相同的变量但不同的类名创建单独的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

同样,如果有很多变量,我也必须为他们做同样的事情,这是非常繁琐的。

有什么方法可以让我把这两个类的对象等同起来并自动复制它们的值?

4 个答案:

答案 0 :(得分: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
    }
}

答案 1 :(得分:0)

使ABC的父类DEF可以解决问题。如果它适用于您的实施。

答案 2 :(得分:0)

如果可以使用第三方库,那么试试这些..

来自 Apache Commons

BeanUtils,使用 copyProperties(Object,Object)方法。

Dozer适合bean对话。

答案 3 :(得分: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/