【发布时间】:2019-02-04 10:58:54
【问题描述】:
当尝试编译具有多个非抽象方法的 Java @FunctionalInterface 时,会引发编译错误。
但是,在 Kotlin 中执行相同操作时,不会引发错误或警告,即以下 Kotlin interface 编译成功:
@FunctionalInterface
interface Foo {
fun foo()
fun foo(params: Map<String, String>)
}
这是 Kotlin 编译器的预期行为还是错误?
请注意,为上述 Kotlin sn-p 生成的字节码等同于以下 Java sn-p(正确 - 无法编译):
@FunctionalInterface
// metadata omitted
public interface Foo {
void foo();
void foo(@NotNull Map var1);
}
【问题讨论】:
标签: kotlin functional-interface