请注意,如果将匿名类转换为未绑定的方法引用,则 Java 运行时可以在后续调用期间重用相同的方法引用对象。 另一方面,使用匿名类时,每次都会创建单独的对象。 因此,在极少数情况下,应用该快速修复可能会导致语义发生变化,例如,当匿名类实例用作 HashMap
键时。
示例:
Runnable r = new Runnable() {
@Override
public void run() {
System.out.println();
}
};
在应用快速修复后:
Runnable r = System.out::println;
使用在接口未使用 @FunctionalInterface 注解时报告选项可为未使用 @FunctionalInterface
注解的接口启用此检查。