Kotlin反射是不可用的
我试图从这个视频的第一个例子学习更高级的功能。 这是我的代码和输出。
码
fun lowercase(value: String) = value.toLowerCase() fun higherOrder(value:String, op: (String) -> String) : String { println("Executing higher order fun $op") return op(value) } fun main(args: Array<String>) { println(higherOrder("HELLO", ::lowercase)) println(higherOrder("hello", {it -> lowercase(it)})) println(higherOrder("HeLlo", { x -> lowercase(x) })) println(higherOrder("Hello", { lowercase(it) })) }
产量
Executing higher order fun function lowercase (Kotlin reflection is not available) hello Executing higher order fun Function1<java.lang.String, java.lang.String> hello Executing higher order fun Function1<java.lang.String, java.lang.String> hello Executing higher order fun Function1<java.lang.String, java.lang.String> hello Process finished with exit code 0
所以我的问题是,为什么打印Kotlin反射不可用 ?
除了kotlin-stdlib
之外,全反射还需要kotlin-reflect
库。 如果全反射可用,它可能会有一个更全面的toString()
,因此消息。