[英]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.