gpt4 book ai didi

java - Java 中的完成处理程序?

转载 作者:搜寻专家 更新时间:2023-10-30 21:01:11 26 4
gpt4 key购买 nike

我一直在为 iOS 编写代码,我非常熟悉 Objective-C 中 block 的概念。现在我正在为 Android 学习 Java,并尝试将一些应用程序从 Android 转换为 iOS。

我读到在 Java 中没有完美的 block 等价物,所以我想知道什么是实现完成处理程序或任何可以类似工作的最佳替代方案。

最佳答案

一般来说,接口(interface)类型。如果您的处理程序没有参数和 void 返回类型,您可以按照 Rob 的建议使用 Runnable(这是一个 interface)。但是定义你自己的东西很简单:

interface CompletionHandler {
public void handle(String reason);
}

然后将它传递给你自己的类:

something.setCompletionHandler(new CompletionHandler() {
@Override
public void handle(String reason) {
...
}
});

在另一个类中:

void setCompletionHandler(CompletionHandler h) {
savedHandler = h;
}

然后通过调用方法调用它:

savedHandler.handle("Some mysterious reason");

这种事情在 Java Swing 和 Android 库中到处都是为“监听器”完成的;见View.OnClickListener ,例如。

(附言,我相信 Java 8 lambda 将可用于所有这些接口(interface)示例。)

关于java - Java 中的完成处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22077960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com