我有一个模型 class,我用它保存到领域。如何使用 `contains()` 查看对象是否已经存储

I have a model class, using which I save to realm. How do I use `contains()` to see if the object has already been stored

这是模型 class -

public class BasicSavedInfoImpl extends RealmObject implements BasicSavedInfo {

    private String iD;

    @Override
    public String getID() {
        return iD;
    }

    @Override
    public void setID(String ID) {
        this.iD= ID;
    }


}

下面是我如何将 id 写入领域 -

realm.beginTransaction();
        BasicSavedInfoImpl basicSavedInfoImpl = realm.createObject(BasicSavedInfoImpl.class);
        basicSavedInfoImpl.setID(id);
        realm.commitTransaction();

如何查看它的领域是否已经包含该 ID?

您想使用 contains 的原因是什么?下面会更准确:

BasicSavedInfoImpl obj = realm.where(BasicSavedInfoImpl.class).equalTo("id", id).findFirst();
if (obj != null) {
  // success
}

如果你想使用包含以下应该工作

RealmResults<BasicSavedInfoImpl> objs = realm.where(BasicSavedInfoImpl.class).contains("id", id).findAll();
if (objs.size() > 0) {
  // success
}

但包含可能会匹配您不想要的 ID,即。 contains("id", "a") 也会匹配 ID 的 "ab", "abc", "ba" 等等。