报告可以用方法引用替换的匿名类型。

请注意,如果将匿名类转换为未绑定的方法引用,则 Java 运行时可以在后续调用期间重用相同的方法引用对象。 另一方面,当使用匿名类时,每次都会创建单独的对象。 因此,在极少数情况下,应用快速修复可能会导致语义发生变化,例如,当匿名类实例用作 HashMap 键时。

示例:


    Runnable r = new Runnable() {
      @Override
      public void run() {
        System.out.println();
      }
    };

快速修复将此代码更改为压缩形式:Runnable r = System.out::println;

使用 在接口未使用 @FunctionalInterface 注解时报告 选项来为未使用 @FunctionalInterface 注解的接口启用此检查。

仅当项目或模块的语言级别为 8 或更高时才报告此检查。