报告可以用 lambda 表达式替换的匿名类。

示例:


  new Thread(new Runnable() {
    @Override
    public void run() {
      // 运行线程
    }
  });

在应用快速修复后:


  new Thread(() -> {
    // 运行线程
  });

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

Java 1.7 和更早版本的 JVM 不支持 lambda 语法。

使用 在接口未使用 @FunctionalInterface 注解时报告 选项忽略匿名类实现没有 @FunctionalInterface 注解的接口的情况。