2017-01-31 3 views
0

ArrayList<? extends BaseModel> 나는 렐름에 저장하고 싶습니다.ArrayList를 저장하는 중 <? 확장 BaseModel> 영역에서

BaseModel을 확장하는 여러 클래스가 있으며 모두이 ArrayList에 저장됩니다. 렐름은 이것을 디스크에 저장하면 옳은 일을 할 수 있을까요? 각 하위 클래스는 자신의 추가 구성원 및 메소드를 가질 수 있습니다.

나는이 테스트를 직접 해보 아야한다.하지만 내 dev 컴퓨터에서 멀리 떨어져있다. 어쨌든 아무도 먼저 접근하지 않으면 어쨌든 묻고 나 ​​자신에게 대답 할 것이라고 생각했다.

감사합니다! RealmModel 인터페이스를 구현하는 경우 BaseModelRealmObject 클래스의 확장 또는 경우

답변

0

당신은 전화 copyToRealmOrUpdate()에 의해 BaseModel의 목록을 저장할 수 있습니다 :

void storeListToRealm(List<? extends BaseModel> models) { 
    realm.beginTransaction(); 
    realm.copyToRealmOrUpdate(models); 
    realm.commitTransaction(); 
} 

그렇지 않으면, 당신은 당신이 영역에 저장할 수있는 "StoreModel"를 만들 필요를, BaseModel에서 StoreModel으로 매핑. 당신이 서브 클래스 또는 수퍼 클래스에 전달하는 차이가 없습니다처럼

public String getTableName(Class<? extends RealmModel> clazz) { 
    checkClass(clazz); 

    if (clazz.equals(com.yourpackage.somemodel)) { 
     return io.realm.SomeModelRealmProxy.getTableName(); 
    } else if (clazz.equals(com.yourpackage.anothermodel)) { 
     return io.realm.AnotherRealmProxy.getTableName(); 
    } else if ... 

나에게 보이는 :

0

영역은 다음과 같은 코드를 가진 RealmModuleMediator 클래스를 생성합니다.