Kotlin:显式未命名的函数参数

Gle*_*son 6 arguments named kotlin

@FunctionalInterface
interface Fn2<A, B, R> : BiFunction<A, B, R>, (A, B) -> R {
    @JvmDefault
    override operator fun invoke(p1: A, p2: B): R {
        ...
Run Code Online (Sandbox Code Playgroud)

当我实现此接口时:

object: Fn2<Int,Int,Int> {
    override fun invokeEx(accum: Int, i: Int): Int =
    accum + i
}
Run Code Online (Sandbox Code Playgroud)

我收到警告:

警告:(598,76)Kotlin:超类型'Fn2'中的对应参数命名为'a'。使用命名参数调用此函数时,可能会导致问题。

我可以在函数定义中使用某种注释,关键字或秘密名称(如it_invoke()来摆脱这些警告。我承认我正在对Java / Kotlin互操作进行某种非标准的操作,当我完成重构时,这种操作可能会消失,但是我仍然很好奇。

我知道有一个@Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")谢谢evilbloodydemon),但我正在寻找一种方法来在我要覆盖的函数签名(而不是在实现中)抑制它。

yol*_*ole 7

从 Kotlin 1.2.40 开始,无法将函数参数标记为显式未命名,并且我不知道有任何计划添加这种可能性。