gpt4 book ai didi

java - 如何在 Android 上的 Realm 中使用构造函数

转载 作者:行者123 更新时间:2023-11-29 04:48:40 25 4
gpt4 key购买 nike

我想在 android 中为 Database 使用 Realm,我创建 provider class 来保存值,但是当在主类 (activity) 中使用此类 constructor 显示此错误,请查看此图片中的错误:Error image Link

任务提供者类:

public class Task_Provider extends RealmObject {

public Task_Provider() {
}

public String getAddTask() {
return addTask;
}

public void setAddTask(String addTask) {
this.addTask = addTask;
}

public long getAdded_date() {
return added_date;
}

public void setAdded_date(long added_date) {
this.added_date = added_date;
}

public long getWhen_date() {
return when_date;
}

public void setWhen_date(long when_date) {
this.when_date = when_date;
}

public boolean isComplete() {
return complete;
}

public void setComplete(boolean complete) {
this.complete = complete;
}

public Task_Provider(String addTask, long added_date, long when_date, boolean complete) {
this.addTask = addTask;
this.added_date = added_date;
this.when_date = when_date;
this.complete = complete;
}

private String addTask;
@PrimaryKey
private long added_date;
private long when_date;
private boolean complete;

}

主要 Activity (按钮 setOnClickListener):

String addTask = dialog_edit_task.getText().toString();
long now = System.currentTimeMillis();
RealmConfiguration realmConfiguration = new RealmConfiguration.Builder(getActivity()).build();
Realm.setDefaultConfiguration(realmConfiguration);
Realm realm = Realm.getDefaultInstance();
Task_Provider task_provider = new Task_Provider(addTask, now, 0, false);

realm.beginTransaction();
realm.copyToRealm(task_provider);
realm.commitTransaction();
realm.close();

我该如何解决这个问题?全部发送 <3

最佳答案

编辑:自 Realm 2.0.0 以来,构造函数确实工作并提供默认值。


之前:

public Task_Provider(String addTask, long added_date, long when_date, boolean complete) {
this.addTask = addTask;
this.added_date = added_date;
this.when_date = when_date;
this.complete = complete;
}

这是行不通的,因为 Realm-Transformer 在调用 super() 之前无法执行 RealmProxy 的构造函数,所以过去正确的做法是

public Task_Provider() {
}


public static Task_Provider create(String addTask, long added_date, long when_date, boolean complete) {
Task_Provider taskProvider = new Task_Provider();
taskProvider.addTask = addTask;
taskProvider.added_date = added_date;
taskProvider.when_date = when_date;
taskProvider.complete = complete;
return taskProvider;
}

然后你可以做

Task_Provider taskProvider = Task_Provider.create(...);

关于java - 如何在 Android 上的 Realm 中使用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36261888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com