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() ,因此消息。