当前位置: 首页 > 知识库问答 >
问题:

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

蒋英博
2023-03-14

我正在尝试理解一个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个答案

司空元凯
2023-03-14

完全删除该字段。这是相同的:

public abstract class Performance implements {
    Object speed() {
        return new Object();
    }
}
赫连越
2023-03-14

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

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

 类似资料:
  • 如何使用Java8的将上面的代码转换为lambda?例如list.stream().filter()....但我需要操作list。

  • 我在这里挑战。 我正在参加名为。在这里,我必须查看一些程序集,然后将其转换为c函数。程序集如下所示: 因此,行:0x04:mov DWORD PTR[rbp-0x4],edi 0x07:mov DUORD PTR[rbp-x8],esi我很有把握对应于两个参数。然后是带有的if语句,它决定函数的结束方式。我自己的翻译是这样的: 因为在我看来,函数所做的一切都是比较两个输入,然后返回较大的输入,将较

  • 如何将单对象转换为简单列表对象? 我使用下面的代码:

  • 我在JavaFX上有一个应用程序。在这个应用程序中,我需要实现专栏的编辑器。在旧版本中,该代码运行良好: 但是当我试图用lambda重写代码时 我得到一个错误:错误:java:不兼容的类型:lambda表达式中的不兼容参数类型告诉我如何指定lambda表达式的类型?

  • 我有一个包含用户数据的类。 从中,我想提取所有唯一的城市。改变,我为此而做, 这些变化的表达式是什么? 任何帮助都将不胜感激。

  • 问题内容: 我刚刚开始使用Java 8,并且正在使用以下代码片段: 如何将其转换为Lambda样式? 问题答案: 如果是 功能界面 ,则可以 这是您问题中其他类的存根实现的完整示例: