gpt4 book ai didi

java - 为字段名称维护单独常量的替代方法

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:05:24 25 4
gpt4 key购买 nike

在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com