是否可以使用 Lambda 而不是匿名 class 创建新对象?

Is it possible to create a new object using Lambda instead of an anonymous class?

我有这个界面:

public interface Result
{
    public Path path();
    public int line();
}

我想创建一个结果数组列表,这样做效果很好:

list.add(new Result{
    @Override
    path(){
        return "some string";
    }
    @Override
    line(){
        return 1; // some integer
    }

});

我是 lambda 表达式的新手,我曾尝试使用 lambda 来实现它,但我似乎无法获得正确的语法。有可能吗?

您只能使用 lambda 表达式来实现具有单个抽象方法的接口(即函数式接口)。

由于您的 Result 接口有两个方法,因此无法使用 lambda 表达式实现。