在Kotlin中有两个types参数个数不同的函数
这两个function相互冲突。 有没有解决这个问题的方法?
inline fun foo() = ... inline fun foo() = ...
谢谢!
编辑:
我发现方便(至少对我来说)这个问题的解决方案:
inline fun foo() = foo() inline fun foo(type1: KClass = T::class, type2: KClass = I::class) = ...
如果您选择仅添加一个参数,则可以更简洁。
以后你可以像这样使用它:
val x = foo() val y = foo()
这就是我所需要的。
从编译器的角度来看,这些函数具有相同的签名。 types参数不是函数签名的一部分; 它可以被编译器自动推断出来,因此不会消除对不同重载的调用的歧义。
您需要为这些function分配不同的名称。
将注释@JvmName("foo2")
到其中一个函数中。