如何将Lambda转换为简单的Java函数

时间:2016-04-07 03:07:00

标签: java lambda abstract

我试图理解java中的一个程序,它使用lambda将对象返回到接口的引用变量中。我想将lambda转换为简单的java函数,但不知道该怎么做。

该计划如下: -

public abstract class Performance implements Serializable
{ 
Iterface_name vehicle =(Iterface_name & Serializable) () ->{return new Object();};
Object speed() 
{
    return vehicle.speed();
}
}

界面如下: -

public interface Iterface_name 
{
Object speed();
}

如何在不使用lambda进行学习的情况下将此程序转换为简单的java程序。请帮忙。

2 个答案:

答案 0 :(得分:3)

您可以使用自己的Iterface_name接口实现替换lambda表达式。

class Interface_name_impl implements Iterface_name {
    @Override
    public Object speed() {
        return new Object();
    }
}

随后,您可以将使用lambda表达式的语句替换为

Iterface_name vehicle = new Interface_name_impl();

你甚至可以使用匿名类而不明确地拥有实现Iterface_name

的上述类
Iterface_name vehicle1 = new Iterface_name() {
    @Override
    public Object speed() {
        return new Object();
    }
};

另一方面,您甚至可以从

中简单地使用lambda
Iterface_name vehicle =(Iterface_name & Serializable) () ->{return new Object();};

Iterface_name vehicle = () -> new Object();

甚至更短的版本

Iterface_name vehicle = Object::new;

如果你想了解编译器如何在内部实现lambda,你可以通过Java-8-Lambdas-A-Peek-Under-the-Hood

答案 1 :(得分:0)

完全删除该字段。这是一样的:

public abstract class Performance implements {
    Object speed() {
        return new Object();
    }
}