SonarLint:使这个匿名内部 class 成为 lambda(非功能接口)

SonarLint: make this anonymous inner class a lambda (non functional interface)

我是 运行 SonarLint 3.4 和 Oracle JDK 8. SonarLint 给我这个错误:

Anonymous inner classes containing only one method should become lambdas (squid:S1604)

我无法控制的界面是这样设置的:

public interface Interface {
   static String staticMethodOne() {
      return "abc";
   }

   default String methodOne(String input) {
      return "one: " + input;
   }

   default String methodTwo(String input) {
      return "two: " + input;
   }
}

这是产生错误的代码:

public class Main {
   public static void main(String[] args) {
      callMethodOne(
         new Interface() {
            @Override
            public String methodOne(String input) {
               return ("override: " + input);
            }
         }
      );
   }

   private static void callMethodOne(Interface instance) {
      System.out.println(instance.methodOne("test"));
   }
}

因为 "Interface" 不是功能接口,所以我看不到用 lambda 替换它的方法。这是 SonarLint 中的错误还是我遗漏了什么?

已确认为 SonarJava 中的错误;是时候等待下一次 SonarLint 更新了。

https://jira.sonarsource.com/browse/SONARJAVA-2654