【问题标题】:Is it possible to create a new object using Lambda instead of an anonymous class? [closed]是否可以使用 Lambda 而不是匿名类创建新对象? [关闭]
【发布时间】:2016-04-17 12:52:56
【问题描述】:

我有这个界面:

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 来实现它,但我似乎无法正确使用语法。有没有可能?

【问题讨论】:

    标签: java lambda inner-classes anonymous


    【解决方案1】:

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

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

    【讨论】:

    • 我是这么想的,但我还是对此感到困惑。谢谢。匿名内部类是构建此列表的最佳方式吗?
    • @yeahboy 您还可以使用实现Result 的常规类。我想最好的方法是见仁见智,取决于您的具体用例。
    • 我明白了。谢谢,这回答了我的问题:)
    猜你喜欢
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多