首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java等价于Delphi语言特性

Java等价于Delphi语言特性
EN

Stack Overflow用户
提问于 2016-03-20 17:49:30
回答 2查看 576关注 0票数 3

我通常用Delphi编写代码,但在一个特定的项目中,我不得不在Java中快速地进行追赶。我在识别与许多Delphi语言特性相当的Java功能时遇到了问题,因为可能会使用不同的术语来引用它们。

我从Java语言规范中看到,它支持lambda表达式,所以我想我可以在某个地方找到示例,显示相当于匿名方法的Java。

我在这里的问题是,Java是否与以下Delphi类型相当,如果是的话,它们的名称是什么,或者等效的Java构造是什么:

  1. 传统的过程、功能类型,如在type MyProc = procedure(I : Integer)
  2. procedure of objectfunction of object

(我希望这两件事都足够接近,可以用一个问题来问)

EN

回答 2

Stack Overflow用户

发布于 2016-03-20 18:48:13

  1. 在Java中,方法从来不是独立的,它们总是绑定到接口/类。所以没有什么可创建类型引用的。
  2. 检查,例如Java 8: Lambda快速启动

它使用Lambda表达式并将其赋值给变量allPilots ..。

代码语言:javascript
复制
Predicate<Person> allPilots = p -> p.getAge() >= 23 && p.getAge() <= 65;

..。并使用它从另一个地方调用该方法:

代码语言:javascript
复制
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);
        }
    }
}

,其中谓词接口定义为

代码语言:javascript
复制
public interface Predicate<T> {
    public boolean test(T t);
}

这在功能上接近Delphi中对象的函数(因为接口具有返回类型)。对于对象方法,函数接口只是没有返回类型(void)。

票数 4
EN

Stack Overflow用户

发布于 2016-03-20 18:35:38

Java没有类似的Delphi程序类型,它允许您将过程和函数视为可以分配给变量或传递给其他过程和函数的值。

最近的函数匹配将是Java匿名类,它允许您同时声明和实例化类。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36117285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档