繁体   English   中英

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

[英]How to convert Lambda into simple Java function

我试图理解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程序。 请帮忙。

您可以使用自己的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;

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM