gpt4 book ai didi

java - 我如何将 Realm 与泛型一起使用?

转载 作者:搜寻专家 更新时间:2023-11-01 01:12:27 26 4
gpt4 key购买 nike

我有一个泛型方法并想使用泛型类型检索对象。这是我的方法:

public static <T extends RealmObject & IndentifierModel> void storeNewData() {
...
T item = realm.where(Class<T>) // Not compiling (Expression not expected)
.equalTo("ID", data.get(i).getID())
.findFirst();
}

以上不适用于 realm.where(Class<T>) .如何将泛型类型传递给 Realm?

最佳答案

您必须像这样提供通用参数:

public static <T extends RealmObject & IndentifierModel> void storeNewData(Class<T> clazz) {
T item = realm.where(clazz)
.equalTo("ID", 123)
.findFirst();
}

Class<T>无效,因为这就像说 realm.where(Class<List<String>>)realm.where(Class<String>) .你需要的是实际的 Class<T> 实例。但是你不能使用 T.classT由于类型删除,在运行时不可用。在运行时,该方法基本上需要一个 Class<T>实例正常工作。因为你不能从 T 得到它,您将必须显式提供类型为 Class<T> 的参数.

关于java - 我如何将 Realm 与泛型一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31277777/

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