На объекте Realm
я вызываю getSchema().getAll()
для получения доступных схем, а затем getClassName()
по схеме, чтобы получить ее имя.Поиск класса Java для данной схемы Realm
Как я могу впоследствии прочитать данные этой схемы, т. Е. Запрос объектов Java, который он хранит? Я попытался позвонить where(<class>).findAll()
на объект Realm
, но where()
ожидает аргумент, тип которого является рассматриваемым классом Java, и я не нашел способ определить этот класс, учитывая только имя схемы. Обратите внимание, что RealmObjectSchema.getClassName
возвращает неквалифицированное имя, которое не подходит для этой цели.
Так что в основном вопрос заключается в том, как найти Java-класс, соответствующий схеме. Информация есть, как я вижу из полей classToTable
и classToSchema
в RealmSchema
.
Или, может быть, where().findAll()
не лучший подход для извлечения данных?
Спасибо. Все еще есть компромисс - я хотел бы передать класс RealmSchema.getSchemaForClass(), чтобы проверить, является ли это схемой, которую я ищу, но оказывается, что этот метод является локальным пакетом. Поэтому кажется лучшим, что я могу сделать, это перечислить схемы и сравнить их имена с простыми (неквалифицированными) именами классов. Не идеально, но достаточно хорошо. – Dabbler
Просто убедитесь, что вы не обфускаете RealmObjects при использовании Proguard. – EpicPandaForce
Я всегда стараюсь добавить '-keepnames public class * extends io.realm.RealmObject', чтобы убедиться: D – EpicPandaForce