Intellij IDEA从另一个对象实例生成更新方法。 (更新RealmObject)

时间:2014-10-31 17:51:46

标签: java intellij-idea android-studio code-generation realm

我有一个正常的POJO,如下所示:

public class Car extends RealmObject{

    private String name;
    private int maxSpeed;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getMaxSpeed() {
        return maxSpeed;
    }

    public void setMaxSpeed(int maxSpeed) {
        this.maxSpeed = maxSpeed;
    }
}

有没有办法生成一个接收另一个Car实例的更新/复制方法?像这样:

public void update(Car other){
    setName(other.getName());
    setMaxSpeed(other.getMaxSpeed());
}

我从服务器收到JSON格式的汽车,我使用GSON来获取Car实例。如果我想将车保存在Realm中,我必须做这样的事情:

Car receivedCar = getCarFromServer();
Car car = realm.createObject(Car.class);
car.setName(receivedCar.getName());
car.setMaxSpeed(receivedCar.getMaxSpeed());

请注意,由于Realm我无法使用复制构造函数。

我的真实模特有超过25个领域,所以这将是一个杀手级的工作。我宁愿生成一个更新方法,并做这样的事情:

Car receivedCar = getCarFromServer();
Car car = realm.createObject(Car.class);
car.update(receivedCar);

有谁知道如何让我的工作更轻松?

1 个答案:

答案 0 :(得分:1)

来自境界的克里斯蒂安。我们目前正在研究如何制作易于使用的JSON API。我们当前正在进行的工作可以在此拉取请求中找到:https://github.com/realm/realm-java/pull/489。这基本上做你想要的1-liner。

它还没有在主存储库中,所以在那之前你要么必须手动构建Realm,要么创建一个像你描述的那样的复制方法。反馈非常受欢迎。