При попытке скомпилировать Java @FunctionalInterface
с использованием более 1 неабстрактного метода возникает ошибка компиляции.
Однако при выполнении того же в Kotlin никаких ошибок или предупреждений не возникает, т. Е.следующий Kotlin interface
успешно компилируется:
@FunctionalInterface
interface Foo {
fun foo()
fun foo(params: Map<String, String>)
}
Это предполагаемое поведение или ошибка в компиляторе Kotlin?
Обратите внимание, что сгенерированный байт-код для приведенного выше фрагмента Kotlin эквивалентенследующий фрагмент кода Java (который - правильно - не компилируется):
@FunctionalInterface
// metadata omitted
public interface Foo {
void foo();
void foo(@NotNull Map var1);
}