Наконец, решил это сам, я пропустил регистрацию Realm-Transformer, который отвечает за генерацию RealmProxy.
Нам нужно добавить приведенный ниже код в build.gradle необходимого модуля / приложения
buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath "io.realm:realm-transformer:5.8.0"
}
}
import io.realm.transformer.RealmTransformer
android.registerTransform(new RealmTransformer(rootProject))
Что такое Интерфейс? из официального учебного руководства Java
Править: Второй ресурс из того же учебного руководства, раздел Interfaces и Inheritence.
В целом:
Вы видите интерфейс как контракт или соглашение между двумя сторонами. Таким образом, они могут разработать независимо, пока интерфейс не изменяется.
Вызывающий абонент, знает, какое поведение доступно, и сторона реализации знает, что реализовать.
Существует много преимуществ при помощи интерфейсов. Один из них - то, что легко переключиться между реализациями. Другой - то, что классы могут иметь отличающийся (предают поверхности земле), не используя множественное наследование.
Вы могли бы хотеть взглянуть на эту превосходную книгу Bruce Eckel (свободный доступный в электронном формате): Размышление в Java