gpt4 book ai didi

java - 使用匿名对象的 actionListener 到底是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 08:10:34 25 4
gpt4 key购买 nike

我现在有点迷茫。我有一个按钮让我们调用它b1

现在我想添加一个 actionListener,所以通过使用匿名对象我可以做到这一点

      b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
...
}
});

虽然我无法理解 ActionListener 的对象代表什么。 ActionListener 不是接口(interface)吗?所以我们正在创建一个接口(interface)对象?这怎么可能,我们为什么要这样做?

当我尝试这段代码时

  ActionListener al = new ActionListener();

它给我一个错误提示

  Cannot instantiate the type ActionListener

如果我用

   ActionListener al;

这是正确的,但我能用 al 做什么呢?

提前致谢

最佳答案

此语法:

new ActionListener() { ... }

定义了一个实现ActionListener接口(interface)的匿名类。您不是在创建 ActionListener 的实例;您正在创建此匿名类的实例。 (编译器实际上为它分配了一个名称——通常类似于 MyEnclosingClass$1。这个匿名类将有一个单独的 .class 文件。)您可以在 Java tutorial 中阅读更多关于匿名内部类的信息。 .

您可以在函数调用中立即使用这个新对象(就像您的第一个代码片段一样),或者您可以将它分配给一个类型与 ActionListener 赋值兼容的变量。

ActionListener al = new ActionListener() { ... };

关于java - 使用匿名对象的 actionListener 到底是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8360303/

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