2017-04-18 18 views
0

영역 모델에서 유형을 알 수없는 필드를 정의 할 수 있습니까?RealmDB 사용자 정의 필드

샘플 클래스 :

public class Model1 extends RealmObject { 

     @PrimaryKey 
     private String _id; 
     private ? field1; 
    } 

    public class Model2 extends RealmObject { 
      @PrimaryKey 
     private String _id; 
    } 

    public class Model3 extends RealmObject { 
      @PrimaryKey 
     private String _id; 
    } 

지금, 모델 1의 필드 1이 실행 시간에 결정됩니다 타입 모델 2 또는 Model3이 될 수 있습니다. 내가 이것을 성취 할 수있는 방법이 있습니까?

+1

영역 '클래스 '을 지원하지 않습니다. 자세한 내용은 공식 문서를 참조하십시오. https://realm.io/docs/java/latest/#field-types – Dalinaum

+0

예, 알고 있습니다. 유사한 구현을 요구하십시오. 아무튼 그 질문을 편집 –

+0

'field1'은 원시 타입, 박스 타입, 특정 렐름 오브젝트 또는 리얼리즘리스트 중 하나 여야합니다. 때때로 Model2와 Model3이 될 수 없습니다. – Dalinaum

답변

1

아니요, 그렇게 할 수 없습니다. Dalinaum의 의견은 정확합니다.

이를 달성하는 한 가지 방법은 다음과 같습니다.

public class Model1 extends RealmObject { 
    @PrimaryKey 
    private String _id; 
    private Model2 model2; 
    private Model3 model3; 
} 

public class Model2 extends RealmObject { 
    @PrimaryKey 
    private String _id; 
} 

public class Model3 extends RealmObject { 
    @PrimaryKey 
    private String _id; 
} 

if (model1.getModel2() == null) { 
    Model2 model = model1.getModel2() 
    // do something 
} else { 
    Model3 model = model1.getModel3() 
    // do something 
}