【问题标题】:Kotlin all-open compiler plugin doesn't workKotlin 全开放编译器插件不起作用
【发布时间】:2017-01-04 19:11:18
【问题描述】:

我使用 Realm,它的模型类需要 open 关键字。

关注https://blog.jetbrains.com/kotlin/2016/12/kotlin-1-0-6-is-here/, 我尝试使用全开放编译器插件从 Realm 模型类中删除 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 错误。

是不是我做错了什么?

【问题讨论】:

    标签: kotlin


    【解决方案1】:

    您需要将注解的名称添加到配置文件中的路径中:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-20
      • 2015-12-25
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 2016-05-13
      • 1970-01-01
      • 2011-10-29
      相关资源
      最近更新 更多