当前位置: 首页 > 面试题库 >

Java中的侦听器的目的是什么?

水品
2023-03-14
问题内容

我在网上寻找了此信息,但找不到确切解释。我看到的是一个Java接口,它作为参数在另一个类中作为“侦听器”传递。人们将各种侦听器添加到列表中,并通过一种方法将它们全部调用。

我不确定为什么要使用它。有人可以解释吗?

这是我的原始帮助帖子,有人告诉我使用监听器。

链接


问题答案:

在您链接的代码html" target="_blank">示例中, KillMonsterEventListener

public interface KillMonsterEventListener {
    void onKillMonster ();
}

为您的API用户提供了一种告诉您这样的方式:

这是一段代码。杀死怪物时,请回叫它。我会决定要怎么做。

这是我在执行流中特定位置(特别是在杀死怪物的位置)插入代码的一种方式。我可以做这样的事情:

yourClass.addKillMonsterEventListener(
    new KillMonsterEventListener() {
        public onKillMonster() {
            System.out.println("A good monster is a dead monster!");
        }
    }
);

我可以在其他地方添加另一个侦听器:

yourClass.addKillMonsterEventListener(
    new KillMonsterEventListener() {
        public onKillMonster() {
            monsterCount--;
        }
    }
);

当您的代码通过侦听器列表杀死某个怪物时,即

for (KillMonsterEventListener listener : listeners) {
    listener.onKillMonster()
}

我的两个代码段(即monsterCount--和打印输出)均被执行。这样做的好处是您的代码与我的代码完全脱钩了:它不知道我在打印什么,我在递减的变量等等。



 类似资料:
  • 问题内容: 我有一个应用程序,我想在其中监听对特定目录所做的任何更改。一旦在该目录中添加,删除或更新了任何文件,应用程序就应该对我执行ping操作。 问题答案: 您可以使用JNotify JNotify是一个Java库,允许Java应用程序侦听文件系统事件,例如:创建文件已修改文件已重命名文件已删除文件支持的平台 Windows(2000或更高版本)Windows注释支持INofity的Linux

  • 在致力于提高渐进式web应用程序的性能时,我遇到了一个新功能,我发现很难理解这个概念。 什么是被动事件侦听器,在我们的项目中需要它吗?

  • 问题内容: 我有这个代码 尽管我仍未使用userdata,但事实是,每当我单击切换按钮时,我都会获得升序的所需输出。 这是输出: 在第一次单击中,我什么也没得到。 从第二次单击开始,我开始获得这种输出。谁能解释这种行为并为我提供解决方案? 问题答案: 该方法中的所有代码都应转到控制器的方法中。 现在,在第一个切换上单击,为设置数据,然后将它们放入组中,然后在上设置侦听器。因此,仅在第二次切换单击时

  • 嘿,当我运行应用程序时,它会给出一个错误java.lang.IllegalArgumentException:Invalid listener:null,这说明侦听器是空的。我是初学者,所以请大家帮忙解决这个问题。在这一行中出现错误:LocationManager.RequestLocationUpdates(provider,2000,0,locationListener);//这里是我的示例代

  • 问题内容: 可能有两堂课,而在一堂课中 在另一个 //更多原因是因为我需要将按钮(摆动)分离到动作监听器 我该怎么办? 谢谢 问题答案: 不仅可以将这两个部分分开,而且还建议这样做(请参阅MVC模式-非常有关分离屏幕控件(如按钮)和程序逻辑) 我想到的最简单的方法是编写一个实现接口的命名类,如下所示: 然后将其添加到您的按钮:

  • 要运行Kafka,需要在文件。有两种设置我不理解。 有人可以解释侦听器和广告侦听器属性之间的区别吗? 留档说: 侦听器:套接字服务器侦听的地址。 和 advertised.listeners:主机名和端口代理将向生产者和消费者做广告。 我什么时候必须使用哪个设置?