[Android] Kotlin에서 Realm을 사용할 때 "Cannot inherit from final class"오류 처리 방법

2169 단어 AndroidKotlinRealm

결론


Realm Object를 상속하는 클래스에 open 수식자를 추가합니다.

환경


Kotlin: 1.1.4-3
Realm: 3.5.0

오류 내용

Error:(33, 85) error: cannot inherit from final Foo

예제 코드


컴파일 오류
class Foo: RealmObject() {
    var id: Long = 0
}
OK
open class Foo: RealmObject() {
    var id: Long = 0
}

원인


Realm이 컴파일할 때 생성된 Proxy 클래스는 Realm Object의 Foo 클래스를 계승하기 때문이다./app/build/generated/source/kapt/debug/io/realm/FooRealmProxy.java 클래스 선언 섹션
public class FooRealmProxy extends rkowase.sample.Foo
    implements RealmObjectProxy, FooRealmProxyInterface {

참고 자료


Realm Java 3.5.0
https://realm.io/jp/docs/java/latest/

좋은 웹페이지 즐겨찾기