0
函数引用在Java 8和9,可以有方法引用打印到控制台,像如:是有可能使用的println在科特林
List.of(1, 2, 3).forEach(System.out::println);
在科特林我没有找到一个使用方法引用打印到控制台的方法。我试图把这种使用函数引用:
listOf(1, 2, 3).forEach { println(it) }
到:
listOf(1, 2, 3).forEach { ::println }
但我收到此错误:
Overload resolution ambiguity. All these functions match.
@InlineOnly public inline fun println(): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Any?): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Boolean): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Byte): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Char): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: CharArray): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Double): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Float): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Int): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Long): Unit defined in kotlin.io
@InlineOnly public inline fun println(message: Short): Unit defined in kotlin.io
我怎样才能解决这个分辨率不确定性?在这种情况下是否可以使用函数引用?
如果科特林不支持指定你可以创建一个调用正确的过载和使用的包装功能的重载代替。 –
文档链接:https://kotlinlang.org/docs/reference/reflection.html#function-references – chris