我有一个预先初始化的.realm文件,我试图在Android Studio中访问该文件。我使用了Realm浏览器来确定模型后面的确切模式(即字段名称和类型),但是我无法弄清楚Any
类型的comments
类型} field(见下面的截图)应该在我的代码中。
根据{{3}},该字段只能是boolean
,short
,ìnt
,long
,float
,double
, String
,Date
,byte[]
,RealmObject
的子类或RealmList<? extends RealmObject>
。我已为comments
字段尝试了许多不同类型,但我仍然遇到类似以下错误:
io.realm.exceptions.RealmMigrationNeededException: Invalid type 'String' for field 'comments'
当我尝试通过使comments
类型允许RealmObject
尽可能通用时,我的代码甚至无法成功编译:
/Users/name/AndroidStudioProjects/Project/app/build/intermediates/classes/debug/io/realm/ReportRealmProxy.java
Error:(147, 17) error: cannot find symbol variable RealmObjectRealmProxy
Error:(285, 48) error: cannot find symbol variable RealmObjectRealmProxy
Error:(330, 52) error: cannot find symbol variable RealmObjectRealmProxy
Error:(374, 41) error: cannot find symbol variable RealmObjectRealmProxy
Error:(420, 41) error: cannot find symbol variable RealmObjectRealmProxy
最后,当我尝试使用Realm Browser的自动模型代码生成(文件 - &gt;保存模型定义 - &gt;保存Java定义...)时,会生成以下代码:
import io.realm.RealmObject
public class Report extends RealmObject {
private String term;
private String year;
private int enrollment;
private Any comments;
private RealmList<Response> responses;
private RealmList<FacultyReport> facultyReports;
}
不幸的是,Android Studio和我都不了解Any
课程是什么 - 我无法在网上找到它。
我们非常感谢任何帮助,因为我无法在没有完全匹配用于创建它的模型定义的情况下加载数据。如果有一种方法可以加载除Report类/表之外的所有数据,那也可以,因为它当前是空的(如屏幕截图所示)。但是,目前,即使它是空的,我无法对其进行建模也使我无法加载任何对象!
先谢谢。
编辑:这是我的Report.java类代码:
import io.realm.RealmList;
import io.realm.RealmObject;
public class Report extends RealmObject {
private String term;
private String year;
private int enrollment;
private ???? comments;
private RealmList<Response> responses;
private RealmList<FacultyReport> facultyReports;
public ???? getComments() {
return comments;
}
public void setComments(???? comments) {
this.comments = comments;
}
// other getters and setters removed
}
答案 0 :(得分:0)
似乎Realm Swift缺少一些案例,在某些情况下它不会在模型中捕获不受支持的属性类型,因此将其视为“任何&#39;类型(a.k.a.&#39; mixed&#39;)。
我有一个公关正在修复这个问题,目前正在等待审核:https://github.com/realm/realm-cocoa/pull/2496
虽然我们可能会改变我们采取的方法。
答案 1 :(得分:-2)
您是否注意到可以让浏览器为类定义创建Java代码(在文件菜单中查看)?