2014-10-31 2 views
3

(갱신 RealmObject) :Intellij IDEA는 다른 개체 인스턴스에서 업데이트 메서드를 생성합니다. 나는 다음과 같은 일반 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; 
    } 
} 

자동차의 다른 인스턴스를 수신 업데이 트/복사 방법을 생성하는 방법이 있나요? 이런 식으로 뭔가 :

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

나는 서버에서 JSON 형식의 차를 받고 나는 자동차 인스턴스를 얻을 수 GSON를 사용합니다. 때문에 영역의 내가 복사 생성자를 사용할 수 없습니다

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

참고 : 나는 영역에서 차를 저장하려면이 같은 일을해야합니다.

내 실제 모델에는 25 개가 넘는 필드가 있으므로 킬러 작업이 될 것입니다. 차라리 업데이트 방법을 생성하고 다음과 같이하십시오.

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

내 작업을 더 쉽게 할 수있는 방법을 알고있는 사람이 있습니까?

+0

[도저 라이브러리] (http://dozer.sourceforge.net/)를보아야합니다. 그것은 당신을 위해 이것을 할 것입니다. –

+0

모든 입력란을 복사 할 필요가 없습니다. RealmList처럼 그들 중 일부는 변경해서는 안됩니다. 나는 그 대답에서 그리스도인이 제안한 것을 합병했다. 그래도 @EngineerDollery라면 코드를 생성하는 플러그인을 알면 다른 사람에게 유용 할 것입니다. –

답변

1

기독교인이 여기 있습니다. 현재 JSON API를 사용하기 쉬운 방법을 모색 중입니다. 진행중인 현재 작업은이 요청에서 찾을 수 있습니다 : https://github.com/realm/realm-java/pull/489. 기본적으로 1 라이너로 원하는 것을 수행합니다.

아직 주 저장소에 있지 않으므로 수동으로 Realm을 작성하거나 설명 된 것과 같은 복사 방법을 만들어야합니다. 피드백은 매우 환영합니다.

+1

이 끌어 오기 요청은 매우 유용합니다. 이 PR 일정에 대한 아이디어가 있습니까? –

+0

그것은 빨랐다! KentAndersen과 같은 질문이 언제 생깁니 까? –

+0

나는 가능한 한 빨리 미안하다. –

관련 문제