当试图编译Java @FunctionalInterface
有超过1非抽象方法提出了一个编译错误。
然而,在科特林做同样的时候,任何错误或警告的提出,即以下科特林interface
成功编译:
@FunctionalInterface
interface Foo {
fun foo()
fun foo(params: Map<String, String>)
}
这是预期的行为,或在科特林编译器错误?
请注意,上述科特林片段生成的字节码是等同于Java代码片断(其中 - 正常 - 不编译):
@FunctionalInterface
// metadata omitted
public interface Foo {
void foo();
void foo(@NotNull Map var1);
}
问题KT-25512已提交JetBrains公司的问题跟踪器(由另一个用户)报告,当@FunctionalInterface
应用于非SAM接口的编译器行为不端,并作为2019年2月10日的问题仍然没有活动开的事实。