参见英文答案 > Equivalent of C# anonymous methods in Java? 6个
我通常在Delphi中编写代码,但是我必须快速地使用Java进行追赶
对于一个特定的项目.我在识别Java方面遇到了问题
因为可能是因为许多Delphi语言功能的等价物
不同的术语用于指代它们.
我从Java语言规范中看到它支持lambda
表达式,所以我想我能找到一些显示Java等效于匿名方法的示例.
我的问题是Java是否具有以下等价物
Delphi类型,如果是,它们的名称或等价物
Java构造:
>传统过程,函数类型,如MyProc = procedure(I:Integer)类型
>对象的对象和功能的过程
?
(我希望这些都足够接近一个问题)
解决方法:
>在Java中,方法永远不会是独立的,它们总是绑定到接口/类.所以没有什么可以创建类型引用.
>检查例如Java SE 8: Lambda Quick Start.
它使用Lambda表达式并将其赋值给变量allPilots …
Predicate allPilots = p -> p.getAge() >= 23 && p.getAge() <= 65;
…并使用它从不同的地方调用该方法:
System.out.println("\n=== Mail all Pilots ===");
robo.mailContacts(pl, allPilots);
...
public void mailContacts(List pl, Predicate pred) {
for (Person p : pl) {
if (pred.test(p)) {
roboEmail(p);
}
}
}
其中Predicate接口定义为
public interface Predicate {
public boolean test(T t);
}
这在功能上接近Delphi中对象的功能(因为接口具有返回类型).对于对象的方法,功能接口简单地没有返回类型(void).
标签:delphi-10-seattle,java,java-8,delphi
来源: https://codeday.me/bug/20190727/1555600.html