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

标签 kotlin

我使用 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错误。

是不是我做错了什么?

最佳答案

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

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

关于Kotlin 全开放编译器插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41462180/

相关文章:

kotlin - 配置 kapt 以处理 lombok 注释

java - 什么是 ViewModelFactory

kotlin - 如何模拟字符串扩展?

android - 将 Firebase 数据快照反序列化为 Kotlin 数据类

android - 如何在 Kotlin 中构建基于 MutableList 的列表?

java - 如何从类对象中查找源代码语言?

java - "Arrays.copyOf"在 Kotlin

android - 从 ViewModel 观察存储库 LiveData 并通知 UI

android - 使用 Glide 4.11 时出现 "trying to use a recycled bitmap"崩溃,转换会导致此问题吗?

java - 文本是否包含日期格式?