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

如何在Java中初始化匿名内部类

姬高扬
2023-03-14
问题内容

有什么方法可以初始化Java中的匿名内部类吗?

例如:

new AbstractAction() {
    actionPerformed(ActionEvent event) {
    ...
    }
}

有没有办法在类声明中的某处使用例如putValue方法?


问题答案:

使用初始化程序块:

new AbstractAction() {

    {
        // do stuff here
    }

    public void actionPerformed(ActionEvent event) {
    ...
    }
}

初始化实例成员

通常,您需要将代码放在构造函数中以初始化实例变量。使用构造函数初始化实例变量有两种选择:初始化块和final方法。实例变量的初始化块看起来像静态初始化块,但没有static关键字:

{
    // whatever code is needed for initialization goes here
}

Java编译器将初始化程序块复制到每个构造函数中。因此,该方法可用于在多个构造函数之间共享代码块。

资源:

  • Java教程>初始化字段


 类似资料:
  • 问题内容: Java中匿名类的用途是什么?我们可以说使用匿名类是Java的优势之一吗? 问题答案: 使用某些“额外”(例如覆盖方法)创建对象的实例时,匿名内部类会变得很有用,而不必实际继承一个类。 我倾向于将它用作附加事件侦听器的快捷方式: 使用此方法可以使编码更快一些,因为我不需要创建额外的类来实现我可以实例化一个匿名内部类而无需实际创建单独的类。 我仅将这种技术用于“快速而肮脏的”任务,在这些

  • 本文向大家介绍WordPress add_action-初始化-匿名函数,包括了WordPress add_action-初始化-匿名函数的使用技巧和注意事项,需要的朋友参考一下 示例            

  • 问题内容: 我无法按照以下代码初始化列表: 我遇到以下错误: 无法实例化类型 我该如何实例化? 问题答案: 如果你检查API,则会注意到它说: 作为一种手段,它无法实例化(不可能)。 如果你检查该链接,则会发现一些实现的: 所有已知的实施类: 那些可以实例化。使用它们的链接来了解有关它们的更多信息,即IE:知道哪个更适合你的需求。 三种最常用的可能是: 奖励: 你还可以使用,以更简单的方式使用值实

  • 问题内容: 我想知道为什么第二个地图声明(使用菱形运算符)在第一个地图声明时不编译。编译错误: 错误:无法推断HashMap的类型参数;Map map2 = new HashMap <>(){原因:不能对K,V是类型变量的匿名内部类使用’<>’:K扩展在HashMap类中声明的对象V扩展在HashMap类中声明的对象 码: 编辑 感谢您的回答- 我应该更好地阅读编译错误。我在JLS中找到了 如果类

  • 问题内容: 我有一个json作为 我想将我的结构编组到json之上并创建如下结构- 我在初始化上述结构时遇到麻烦。我不确定如何以以下方式初始化匿名结构: 我通过为页面信息创建一个单独的结构并将其与父结构附加在一起来解决此问题。但是,必须有某种方法来执行 匿名 嵌套结构的初始化,就像我对上面的 Fields (字符串切片)所做的一样。谁能将我重定向到一些指南来做到这一点? 问题答案: 这可行,但是很

  • 问题内容: 在php中声明属性时,为什么无法将属性初始化为函数?以下代码片段导致 解析错误:语法错误,意外的T_FUNCTION 您还可以将属性初始化为字符串,数字或其他数据类型吗? 编辑: 但是我可以在__construct()方法中将函数分配给属性。以下工作正常: 问题答案: 因为它不是用PHP实现的。 http://www.php.net/manual/zh/language.oop5.pr