我有一个试图在Android Studio中访问的预初始化.realm文件。我已经使用Realm浏览器找出了用来模拟我的类的确切模式(即字段名称和类型),但是我无法弄清楚Any字段的comments类型(请参见下面的截图)在我的代码中。
java - .realm文件中的“任何”字段-LMLPHP
 根据this,该字段只能是booleanshortìntlongfloatdoubleStringDatebyte[]RealmObjectRealmList<? 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/

10-11 22:26
查看更多