我想在RealmObject中使用最后一个字段,如private final int fieldName
。因为,我想有效地使用常量和方法。
public class CleanTime extends RealmObject {
private final int NIGHT_TIME_LECTURE_MINUTE_LENGTH = 50;
private final int NIGHT_TIME_LECTURE_BREAK_TIME_MINUTE = 10;
// and other field
public CleanTime() {
// Constructor which use NIGHT_TIME_LECTURE_MINUTE_LENGTH
}
// and other methods
}
但问题是我的Logcat抛出错误,上面写着“此类包含非法的最终字段”
所以,我找到了一些关于领域的文件,并得出了它不起作用的原因。
在Realm官方文档中..
目前, Realm模型不支持最终,瞬态和易失性字段。这主要是为了避免对象在Realm或非托管方面的行为方式之间存在差异。
所以,我试图解决这个问题,下面的代码已经完成,正在使用Instance Initializer
public class CleanTime extends RealmObject {
private int NIGHT_TIME_LECTURE_MINUTE_LENGTH;
private int NIGHT_TIME_LECTURE_BREAK_TIME_MINUTE;
// and other field
{ // Instance Initializer
NIGHT_TIME_LECTURE_MINUTE_LENGTH = 50;
NIGHT_TIME_LECTURE_BREAK_TIME_MINUTE = 10;
}
public CleanTime() {
// Constructor which use NIGHT_TIME_LECTURE_MINUTE_LENGTH
}
// and other methods
}
但我很好奇这是否是正确,领域推荐使用最终字段的方式。我做对了吗?有没有更好的主意?
啊,上面的代码与NIGHT_TIME_LECTURE_MINUTE_LENGTH = 50
相同,我想修复NIGHT_TIME_LECTURE_MINUTE_LENGTH
字段,不希望它被更改