Sonar:只包含一个方法的匿名内部类应该成为lambdas

Sonar:只包含一个方法的匿名内部类应该成为lambdas,lambda,java-8,sonarqube,Lambda,Java 8,Sonarqube,以下代码示例: public abstract class Main { public abstract void myMethod(); public static void main(String[] args) { Main main = new Main() { @Override public void myMethod() { // TODO Auto-generat

以下代码示例:

public abstract class Main {

    public abstract void myMethod();

    public static void main(String[] args) {
        Main main = new Main() {

            @Override
            public void myMethod() {
                // TODO Auto-generated method stub

            }
        };
        main.myMethod();
    }
}

不符合以下要求:

只包含一个方法的匿名内部类应成为 lambdas:将此匿名内部类设为lambda


我该怎么解决呢?

你提出的两个问题确实是规则提出的假阳性。 已创建错误通知单:和

要详细说明一下: 当存在
引用时,不应提出问题(第二种情况),因为它实际上是不可修复的,我认为此规则应仅应用于单个抽象方法接口,而不是每个匿名类来修复第一种情况的问题

import java.util.Observable;
import java.util.Observer;

public abstract class Main {


    public static void main(String[] args) {
        Observable observable = new Observable();
        observable.addObserver(new Observer() {

            @Override
            public void update(Observable o, Object arg) {
                o.deleteObserver(this);
            }
        });
    }
}