科特林@FunctionalInterface编译多个抽象方法

问题描述 投票:4回答:1

当试图编译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);
}
kotlin functional-interface
1个回答
2
投票

问题KT-25512已提交JetBrains公司的问题跟踪器(由另一个用户)报告,当@FunctionalInterface应用于非SAM接口的编译器行为不端,并作为2019年2月10日的问题仍然没有活动开的事实。

© www.soinside.com 2019 - 2024. All rights reserved.