我没想到在这个阶段我会在 Java 中遇到全新的语法,但是你瞧,我只是遇到了一些事情:
确切的上下文和下面的代码应该做什么是无关紧要的——它只是为了提供某种上下文。
我正在尝试在 IT Mill Toolkit 中综合创建一个事件,所以我写了这样的一行:
buttonClick(new Button.ClickEvent(button));
但是,Eclipse 给了我以下错误消息:
无法访问 Button 类型的封闭实例。必须使用 Button 类型的封闭实例来限定分配(例如 xnew A(),其中 x 是 Button 的实例)。
当我如下重写上面的行时,它不再抱怨了:
buttonClick(button.new ClickEvent(button)); // button instanceof Button
所以,我的问题是:后一种语法到底是什么意思,为什么第一个片段不起作用?Java 在抱怨什么,在第二个版本中它在做什么?
背景信息:Button
和Button.ClickEvent
都是非抽象公共类。