Java 在RealmObject中使用Final字段的正确方法
我想在RealmObject中使用final字段,比如Java 在RealmObject中使用Final字段的正确方法,java,android,realm,final,Java,Android,Realm,Final,我想在RealmObject中使用final字段,比如private final int fieldName。因为,我想有效地使用常量和方法 CleanTime.java 但问题是我的Logcat抛出了一个错误,上面写着“这个类包含非法的final字段” 所以,我找到了一些关于领域的文档,并找到了它不起作用的原因 领域内的官方文件.. 目前,领域模型不支持final、transient和volatile字段。这主要是为了避免对象的行为在领域管理和非托管之间存在差异 因此,我尝试解决这个问题,并使
private final int fieldName
。因为,我想有效地使用常量和方法
CleanTime.java
但问题是我的Logcat抛出了一个错误,上面写着“这个类包含非法的final字段”
所以,我找到了一些关于领域的文档,并找到了它不起作用的原因
领域内的官方文件..
目前,领域模型不支持final、transient和volatile字段。这主要是为了避免对象的行为在领域管理和非托管之间存在差异
因此,我尝试解决这个问题,并使用实例初始值设定项
CleanTime.java
但我很好奇这是否是正确的,建议使用final字段的方法。我做得对吗?还有更好的办法吗
啊,上面的代码与
NIGHT\u TIME\u teaching\u MINUTE\u LENGTH=50
相同,我想修改NIGHT\u teaching\u MINUTE\u LENGTH
字段,不想更改它,它应该是private static final int
并且它会自动忽略static final
final字段。此外,在上次更新中,我们还添加了对瞬态
字段的支持。他们现在只是被忽视,而不是被完全禁止。@EpicPandaForce Oops。。。。。。。我不明白自己为什么会犯这么容易的错误。。。非常感谢。我忘了静态…:(@ChristianMelchior你是说全新版本的3.3.2支持transient
?我在block-quote中写的是来自Realm官方网站,上面说3.3.1是最新版本。transient字段支持3.2.0+Nah,它应该是private static final int
,它将自动忽略static final
fin所有字段。在上次更新中,我们还添加了对瞬态字段的支持。它们现在被忽略,而不是完全被禁止。@EpicPandaForce Oops……。我不明白自己为什么会犯这么容易的错误……谢谢你……我忘记了静态…:(@ChristianMelchior你是说全新版本的3.3.2支持<代码>瞬态<代码>?我在区块引用中写的是来自Realm官方网站,上面说3.3.1是最新版本。瞬态字段支持3.2.0+
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
}
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
}