@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» называется «а».Это может вызвать проблемы при вызове этой функции с именованными аргументами.
Существует ли какая-то аннотация или ключевое слово или секретное имя (например, it
или _
), которые я могу использовать на invoke()
определение функции, чтобы избавиться от этих предупреждений.Я признаю, что делаю что-то нестандартное с взаимодействием Java / Kotlin, которое может исчезнуть, когда я закончу рефакторинг, но мне все еще любопытно.
Я знаю, что есть @Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
(спасибо evilbloodydemon ), но я ищу способ подавить его в сигнатуре функции, которую я переопределяю, а не в реализации.