我通常用Delphi编写代码,但在一个特定的项目中,我不得不在Java中快速地进行追赶。我在识别与许多Delphi语言特性相当的Java功能时遇到了问题,因为可能会使用不同的术语来引用它们。
我从Java语言规范中看到,它支持lambda表达式,所以我想我可以在某个地方找到示例,显示相当于匿名方法的Java。
我在这里的问题是,Java是否与以下Delphi类型相当,如果是的话,它们的名称是什么,或者等效的Java构造是什么:
type MyProc = procedure(I : Integer)中procedure of object和function of object(我希望这两件事都足够接近,可以用一个问题来问)
发布于 2016-03-20 18:48:13
它使用Lambda表达式并将其赋值给变量allPilots ..。
Predicate<Person> allPilots = p -> p.getAge() >= 23 && p.getAge() <= 65;..。并使用它从另一个地方调用该方法:
System.out.println("\n=== Mail all Pilots ===");
robo.mailContacts(pl, allPilots);
...
public void mailContacts(List<Person> pl, Predicate<Person> pred) {
for (Person p : pl) {
if (pred.test(p)) {
roboEmail(p);
}
}
},其中谓词接口定义为
public interface Predicate<T> {
public boolean test(T t);
}这在功能上接近Delphi中对象的函数(因为接口具有返回类型)。对于对象方法,函数接口只是没有返回类型(void)。
发布于 2016-03-20 18:35:38
Java没有类似的Delphi程序类型,它允许您将过程和函数视为可以分配给变量或传递给其他过程和函数的值。
最近的函数匹配将是Java匿名类,它允许您同时声明和实例化类。
https://stackoverflow.com/questions/36117285
复制相似问题