我有一个试图在Android Studio中访问的预初始化.realm文件。我已经使用Realm浏览器找出了用来模拟我的类的确切模式(即字段名称和类型),但是我无法弄清楚Any
字段的comments
类型(请参见下面的截图)在我的代码中。
根据this,该字段只能是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的自动模型代码生成(文件->保存模型定义->保存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
}
最佳答案
似乎Realm Swift缺少一些情况,在某些情况下它无法捕获模型中不受支持的属性类型,因此将其视为“任意”类型(也称为“混合”)。
我有一个PR解决此问题,该问题正在等待审查:https://github.com/realm/realm-cocoa/pull/2496
尽管我们可能会改变我们采用的方法。
关于java - .realm文件中的“任何”字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32405539/