Kotlin全局开放编译器插件不起作用。

9

我使用Realm,它需要在其模型类中添加 open 关键字。

根据 https://blog.jetbrains.com/kotlin/2016/12/kotlin-1-0-6-is-here/,我尝试使用 all-open 编译器插件来移除 Realm 模型类中的 open 关键字。

首先,我添加了 all-open 编译器插件,并设置了注解的包名。

buildscript {
  dependencies {
    classpath "org.jetbrains.kotlin:kotlin-allopen:$kotlin_version"
  }
}

apply plugin: "kotlin-allopen"

allOpen {
  annotation("com.mycompany.myapp.annotation")
}

第二,我生成了注释。
package com.mycompany.myapp.annotation
annotation class AllOpenAnnotation

最后,我将注释添加到Realm模型类中。
@AllOpenAnnotation
class Model {
  var id: Int = -1,
  var title: String = "",
  var desc: String? = null
}: RealmObject()

但是出现了error: cannot inherit from final Model错误。

我做错了什么吗?

1个回答

12
您需要在配置文件中的路径中添加注释的名称:
allOpen {
    annotation("com.mycompany.myapp.annotation.AllOpenAnnotation")
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接