如何在领域中创建Object

时间:2017-12-28 14:24:37

标签: android realm

我有这个代码,我应该写什么而不是问号'???'

Token是项目中的类,包含字段名称和tokenValue

String tokenString = response.getString("token");
mRealm.beginTransaction();

Token myToken = mRealm.createObject( ??? );
myToken.name = "token";
myToken.tokenValue = tokenString;

mRealm.commitTransaction();

======================================= 我有这个错误: 错误:找不到适合createObject(Class)的方法                    令牌myToken = mRealm.createObject(myToken.getClass());                                          ^     方法Realm.createObject(Class)不适用       (推断类型不符合上限)         推断:CAP#1         上限:RealmModel)

2 个答案:

答案 0 :(得分:1)

你可以使用这样的领域,

public class University extends RealmObject {
    @Index
    private int id;
    private String name;
// getters & setters 
}

Realm realm = Realm.getInstance(this);
realm.beginTransaction();
University university = realm.createObject(University.class); // Create a new object
user.setName("John");
realm.commitTransaction();

答案 1 :(得分:0)

查看最新文档Realm Documentation

// Get a Realm instance for this thread
Realm realm = Realm.getDefaultInstance();

创建这样的模型

public class User extends RealmObject {

private String          name;
private int             age;

@Ignore
private int             sessionId;

// Standard getters & setters generated by your IDE…
public String getName() { return name; }
public void   setName(String name) { this.name = name; }
public int    getAge() { return age; }
public void   setAge(int age) { this.age = age; }
public int    getSessionId() { return sessionId; }
public void   setSessionId(int sessionId) { this.sessionId = sessionId; }
}

通过类添加对象

realm.beginTranscation();

User user=realm.createObject(user.class);
    user.name = "Fido";
    user.age  = 5;

realm.commitTranscation();

您可以直接从json创建对象

realm.beginTranscation();

User user=realm. createObjectFromJson(user.class,{"jsonfields":"sample"});

realm.commitTranscation();