Java中的回调方法是什么? (这个词的使用似乎很宽松)

2024-01-01

我不明白回调方法是什么,而且我听说人们非常宽松地使用该术语。在Java世界中,什么是回调方法?如果有人能提供一些Java回调方法的示例代码并进行解释,这将对我的Java学习之旅有很大帮助。


回调是一段代码,您可以将其作为参数传递给其他代码,以便其他代码执行它。由于 Java 尚不支持函数指针,因此它们被实现为 Command 对象。就像是

public class Test {
    public static void main(String[] args) throws  Exception {
        new Test().doWork(new Callback() { // implementing class            
            @Override
            public void call() {
                System.out.println("callback called");
            }
        });
    }

    public void doWork(Callback callback) {
        System.out.println("doing work");
        callback.call();
    }

    public interface Callback {
        void call();
    }
}

回调通常会保留对某些实际有用的状态的引用。

通过使回调实现具有对代码的所有依赖关系,您可以在代码和执行回调的代码之间获得间接性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中的回调方法是什么? (这个词的使用似乎很宽松) 的相关文章

随机推荐

  • 在 has_many :through 关系中添加和删除

    从 Rails 关联指南中 他们使用 has many through 演示了多对多关系 如下所示 class Physician lt ActiveRecord Base has many appointments has many pa
  • JSF 2.0 h:ui 内的 inputText:repeat

    我应该如何更改以下示例 在提交 commandButton 后 更改 inputText 中的值不会消失 我明白为什么会发生这种情况 但我不知道如何解决
  • ASP.NET 应用程序中需要定时炸弹

    我们开发了一个定制的 ASP NET 应用程序 供在客户的 Intranet 上使用 看来他们不太可能为此付出代价 所以我们的老板希望我们引入一个定时炸弹 编辑 请仅提供技术答复 这是否是一个好 或合法 想法是 CEOoverflow co
  • .aspx 与 .ashx 主要区别

    aspx 和 ashx 页面之间有什么区别 当我需要处理从代码调用并返回响应的请求时 我现在使用 ashx 但我想要一个更技术性的答案 Page是一个特殊的案件处理者 通用 Web 处理程序 ashx 基于扩展的处理器 是所有没有 UI 且
  • 如何仅显示带有facet的极地ggplot的部分绘图区域?

    假设有一个极坐标数据集要绘制为扇形 library ggplot2 library reshape2 data lt melt matrix rnorm 1000 nrow 20 data type lt 1 2 data Var1 lt
  • 适用于 Android 的商业 IDE+模拟器?

    我是一个 Android 新手 但在过去的几周里 我在 2 台 PC 上安装了 JDK Eclipse Android SDK 两次安装都花了一天的时间进行调整和处理配置问题 并使不同的部分一起发挥作用 通常都是 PITA 在一台电脑上 我
  • 按超出范围的索引分配值到列表[重复]

    这个问题在这里已经有答案了 mylist a apple b ball c cat mylist 6 value print mylist Error IndexError list assignment index out of rang
  • Chainlink-以“bytes32”形式获取 API 时出现问题

    我一直在学习 chainlink API 并尝试修改example https docs chain link docs advanced tutorial 从 Chainlin 的文档中获取byets32来自 API 的值 该示例的原始代
  • C++ 优化矩阵乘法微内核中的 L1 缓存使用

    我的任务是实现一个优化的矩阵乘法微内核 用于计算C A B在 C 中 从以下代码片段开始 我遇到了一些违反直觉的行为 我需要一些帮助来更好地理解正在发生的事情 void mat mul double A double B double C
  • 关于服务和存储库的领域驱动设计问题

    我有两个实体用户和课程 用户可以参加多门课程 这使得关系成为一对多 但一门课程可以由许多学生选修 因此它具有多对多的关系 现在 我需要为用户注册课程 我的用户实体有 public void AddCourse Course course i
  • 系统托盘访问

    有没有办法 在 C 中 访问系统托盘 我不是在谈论制作通知图标 我想迭代托盘中的项目 我会猜测整个过程 但我不知道如何确定托盘中实际有什么 什么只是一个过程 并且还用我自己的图标来表示这些项目用户界面 您对 Win32 互操作有何看法 我发
  • 如何在 RDLC 中删除时间并仅显示日期

    我使用的是 Winform C 和 RDLC MySQL 我尝试仅在 Tablex 中显示日期 但这种日期格式也有时间 如何去掉时间 我的表情是 Fields date Value 请参阅下面我的报告 提前致谢 我在表达式中尝试了 Fiel
  • 找出给定页面上使用的 CSS 样式

    我有一个包含多个样式表的页面 其中的大部分样式实际上并未在页面中使用 已弃用等 我想导出新的样式表包含页面上实际使用的所有样式 有办法做到这一点吗 我也遇到了同样的问题 由于我需要分析的页面是仅登录的 并且是为了工作 所以我无法向外部应用程
  • 使用 swift 复制文件

    我正在使用此代码复制文件数据库 try fileManager copyItem atPath storeURL path toPath storeCopyURL path 我可以看到创建了一个新的 sqlite 数据库 后来 当我尝试使用
  • Maven 找不到依赖项 [dependencyResolutionException]

    我向我的项目添加了 Maven 依赖项 并且我的项目在本地编译 但不在服务器上编译 它无法解析新添加的依赖项 这是我的 pom xml 文件
  • Java 和 JavaScript 之间使用 OAEP 进行 RSA 加密

    我正在尝试在 JavaScript 中加密一个短字符串并在 Java 中解密 解密失败 我认为这是因为两个平台之间的块模式和 或填充不同 我尝试在Java和JavaScript中加密相同的字符串 并得到不同的结果 这表明确实存在差异 下面是
  • 如果这 3 个类别都遵循 SOLID 概念

    我想向您询问有关以下 SOLID 代码的更多信息 如果这三个类都遵循 SOLID 概念 public interface A public void calculate String a public class B implements
  • 每次运行 Appium、Ruby 测试时如何跳过 Chrome 欢迎屏幕

    我是 Appium 新手 所以我的要求是通过模拟器中的 Appium 运行 Web 驱动程序测试 但是当我每次运行 chrome 时总是显示欢迎屏幕 我必须手动跳过该屏幕才能查看测试结果并拍摄屏幕截图 如何跳过 chrome 欢迎屏幕 下面
  • 删除和添加链接服务器[重复]

    这个问题在这里已经有答案了 可能的重复 SQL Server 是否有针对链接服务器的 IF EXISTS 测试 https stackoverflow com questions 3104186 sql server is there an
  • Java中的回调方法是什么? (这个词的使用似乎很宽松)

    我不明白回调方法是什么 而且我听说人们非常宽松地使用该术语 在Java世界中 什么是回调方法 如果有人能提供一些Java回调方法的示例代码并进行解释 这将对我的Java学习之旅有很大帮助 回调是一段代码 您可以将其作为参数传递给其他代码 以