【发布时间】:2019-11-06 22:41:45
【问题描述】:
据我所知,Kotlin 中的Any 与java 中的Object 相似,默认情况下,我们声明的任何类都实现了它。我想把类名扩展成一个新的valclassTag。因此,
当我扩展一个函数时,它工作正常,
fun Any.getClassTag(): String { return this::class.java.simpleName }
但是当我扩展 val 类型时,我发现编译器错误。
val Any.classTag: String { return this::class.java.simpleName }
函数声明必须有名字
如何处理?
【问题讨论】:
-
您的问题可以通过为您的变量提供 getter 方法来解决,例如:
val Any.classTag: String get() { return this::class.java.simpleName }
标签: android inheritance kotlin extension-methods dependency-properties