在java中出现了一个非常奇怪的语法错误

在java中出现了一个非常奇怪的语法错误,java,syntax,Java,Syntax,我的java程序中出现了一个非常奇怪的错误。 此代码未显示任何错误: buttonPlay.addListener(new ClickListener(){ public void clicked(InputEvent event, float x, float y) { /*public GameScreen(Create create) { this.create = create;

我的java程序中出现了一个非常奇怪的错误。 此代码未显示任何错误:

buttonPlay.addListener(new ClickListener(){
            public void clicked(InputEvent event, float x, float y) {
                /*public GameScreen(Create create) {
                    this.create = create;
                }*/
            }
        });
但是如果我删除这些注释,Eclipse会声明有两个错误:

我应该插入一个}来完成public void的方法体 点击

我应该删除代码的最后一个}

因此,公共游戏ScreenCreate产生了一个问题,Eclipse突然不再知道块的开始和结束


对此我真的没有任何解释,我很乐意给出每一个答案。

在注释掉的代码未注释的情况下,您正试图在方法中直接声明构造函数。在Java中不能这样做

// You can't do this
buttonPlay.addListener(new ClickListener(){                   // 1
    public void clicked(InputEvent event, float x, float y) { // 2
        public GameScreen(Create create) {                    // 3
            this.create = create;                             // 3
        }                                                     // 3
    }
});
实例化匿名类。这很好

实现一个匿名类的方法,你想在那里添加一个@Override。也很好

直接在另一个方法中声明构造函数。你不能那样做

公共空间已单击。。。是一个方法,在其中,您试图创建一个构造函数,至少这是注释代码的内容


构造函数是类特定的块,不能嵌套在方法中。这就是编译失败的原因。

请在删除注释区域后共享代码好吗?您正在尝试在方法体中声明构造函数。惊喜到底在哪里?是的,我把自己的脸捂得很紧,所以我再也不会尝试这样做了,希望如此。谢谢你的回答,帮了我很大的忙:。