作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在 android 中使用 Sqlite 作为 DB 时,我们中的许多人创建了一个类,如 DbConstants,我们将所有表名、列名保存为常量。
在 Realm DB 的情况下,我们准备了 POJO 类,它们分别表示为表和字段作为列名。
有什么方法可以避免在这里创建另一个常量文件吗?
用例:
POJO 表示用户表:
public class User extends RealmObject {
private String name;
private int age;
@Ignore
private int sessionId;
// Standard getters & setters generated by your IDE…
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public int getSessionId() { return sessionId; }
public void setSessionId(int sessionId) { this.sessionId = sessionId;
}
}
所以当我们查询用户表时如下:
RealmResults<User> result = realm.where(User.class)
.equalTo("name", "John")
.or()
.equalTo("name", "Peter")
.findAll();
我不想在这里使用像“name”这样的文字。那么还有其他优雅的解决方案或最佳实践吗?
最佳答案
通常的做法是在你的模型类中有一个静态的最终常量,如下所示:
public class User extends RealmObject {
public static final String NAME = "name";
public static final String AGE = "age";
// Fields, constructors, getters, setters,
}
realm.where(Person.class).equalTo(Person.NAME, "John").findAll();
如果你想要一种自动化的方式,你可以看看:https://github.com/cmelchior/realmfieldnameshelper
关于java - 为字段名称维护单独常量的替代方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38737702/
概述 CentOS Stream 成立于 2019 年,是“RHEL 下一步的滚动预览”。Red Hat 首席技术官 Chris Wright 和 CentOS 社区经理 Rich Bowen 各
我有一个使用 Mesosphere DC/OS 编排选项进行配置的 Azure 容器服务 (ACS) 集群。我可以在 Marathon UI 中创建一个应用程序。 但是,当我通过 Marathon U
我是一名优秀的程序员,十分优秀!