@FunctionalInterface
interface Fn2<A, B, R> : BiFunction<A, B, R>, (A, B) -> R {
@JvmDefault
override operator fun invoke(p1: A, p2: B): R {
...
Когда я реализую этот интерфейс:
object: Fn2<Int,Int,Int> {
override fun invokeEx(accum: Int, i: Int): Int =
accum + i
}
Я получаю предупреждение:
Предупреждение: (598, 76) Kotlin: соответствующий параметр в супертипе «Fn2» называется «a». Это может вызвать проблемы при вызове этой функции с именованными аргументами.
Есть ли какая-то аннотация, ключевое слово или секретное имя (например, it
или _
), которые я могу использовать в определении функции invoke()
, чтобы избавиться от этих предупреждений. Я признаю, что делаю что-то нестандартное с взаимодействием Java/Kotlin, которое может исчезнуть, когда я закончу рефакторинг, но мне все еще любопытно.
Я знаю, что есть @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
(спасибо, злобный демон), но я ищу способ подавить его в сигнатуре функции, которую я переопределяю, а не в реализации.