尝试使用by lazy
和 {{1}时,在更新到Kotlin 1.3.0(在1.2.71 中工作)后,我无法编译。 }。这似乎仅在我的项目中发生。一个演示项目运行正常。
我想向给定的类添加接口并延迟加载其值。
我创建了一个小示例,该示例在我的项目中不起作用,但是在其他任何项目中都可以正常工作:
object
一旦我合并open class Foo
interface Bar {
val lazyLoadedString : String
}
class Test {
private val foo by lazy {
object : Foo(), Bar {
override val lazyLoadedString = "Demo"
}
}
}
和object
,它就不能再编译并显示以下错误。单独使用每个人都是有效的。
Test.java:9:错误:找不到符号
私人最终my.package.Test $ foo $ 2 $ 1 getFoo()符号:类Test $ foo $ 2 $ 1
位置:打包my.package
近距离查看时,您会看到生成的Java文件显示此错误,而不是kotlin代码。
对此有何想法?
答案 0 :(得分:2)
对于这种特定类型的代码,看来kapt在Kotlin 1.3.0中已被破坏。
在上面的代码中,触发它的是Realm注册的注释处理器,但是任何其他注释处理器都将导致相同的错误。