最初的回答
如果我定义
最初的回答
我可以编写代码。
最初的回答,但如果我尝试
如果我定义
class MyF : KFunction0<Int> {
override val name: String = "f"
override fun invoke() = 42
override val annotations: List<Annotation>
get() = TODO()
....
}
最初的回答
我可以编写代码。
val f0: KFunction0<Int> = MyF()
assertEquals("f", f0.name)
最初的回答,但如果我尝试
。
assertEquals(42, f0())
我收到了一个异常:java.lang.ClassCastException: MyF cannot be cast to kotlin.jvm.functions.Function0
我该如何定义自己的KFunction0
实现?
我无法使用() -> Int
,因为我需要name
属性。
我正在使用Kotlin 1.3.21。
此外,似乎我可以运行。
"最初的回答"
val f02 = MyF()
assertEquals(42, f02())