在 Kotlin 1.4.30 中,当我输入
open interface I
Kotlin 编译器警告我modifier 'open' is redundant for 'interface'
。这是完全有道理的:接口当然是开放的,否则它们将毫无用处。
然而,反射库似乎与此相矛盾:
interface I
println(I::class.isOpen) // prints 'false'
这有什么意义?的KDocisOpen
非常简短:
true
如果这个类是开放的。
Kotlin 中“开放”的具体定义是什么? 我认为这意味着“对被该文件之外的类进行子类型化的可能性开放”。