是否可以使用 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 表达式实现。
我有这个界面:
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 表达式实现。