有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我试图理解一个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();
}

如何将这个程序转换成简单的java程序而不使用lambda进行学习。请帮忙


共 (2) 个答案

  1. # 1 楼答案

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

    public abstract class Performance implements {
        Object speed() {
            return new Object();
        }
    }
    
  2. # 2 楼答案

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

    另一方面,您甚至可以从

    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