2016-11-27 10 views
0

内の他のRealmObjectとRealmObjectが、私は複雑なRealmObjectを作成するには問題がある: それが行く:コンプレックスRealmObject:

class User extends RealmObject{ 
public String name; 
public Position position; 
} 

class Position extends RealmObject{ 
public double lat; 
public double lon; 
} 

創造コード:

User user = realm.createObject(User.class); 
user.name = "xcv"; 
Position position = realm.createObject(Position.class); 
position.lat = message.sourceCoords.lat; 
position.lon = message.sourceCoords.lon; 

user.position = position; 

これの結果は以下のようにクラッシュです:

java.lang.StackOverflowError: stack size 1036KB 
                      at com.google.gson.internal.$Gson$Types$WildcardTypeImpl.<init>($Gson$Types.java:539) 
                      at com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:111) 
                      at com.google.gson.internal.$Gson$Types$WildcardTypeImpl.<init>($Gson$Types.java:553) 
                      at com.google.gson.internal.$Gson$Types.canonicalize($Gson$Types.java:111) 
                      at com.google.gson.internal.$Gson$Types$WildcardTypeImpl.<init>($Gson$Types.java:546) 

私は間違っていますか?

+1

可能な重複のようなあなたのGSONインスタンスを作成する必要があります(http://stackoverflow.com/questions/26260214/making-gson-realm-play-素敵な) – EpicPandaForce

答えて

1

あなたは[GSON&レルムは素晴らしいプレーを作る]のこの

Gson gson = new GsonBuilder() 
.setExclusionStrategies(new ExclusionStrategy() { 
    @Override 
    public boolean shouldSkipField(FieldAttributes f) { 
     return f.getDeclaringClass().equals(RealmObject.class); 
    } 

    @Override 
    public boolean shouldSkipClass(Class<?> clazz) { 
     return false; 
    } 
}) 
.create(); 
関連する問題