Java 在Eclipse中,为什么要告诉我添加已经存在的分号?

Java 在Eclipse中,为什么要告诉我添加已经存在的分号?,java,error-messaging,Java,Error Messaging,我正在做一个非常基本的游戏。它完全是文本。这听起来很简单,但当我声明用于确认玩家用户名的函数时,出现了此错误消息。 '语法错误,插入“;”以完成LocalVariableDeclarationStatement' 代码如下: 静态无效确认();{ 正如您所看到的,它有一个分号,那么为什么会有一条错误消息告诉我添加一个分号呢? 我还注意到它提到了一个“LocalVariableDeclarationStatement”,我在代码中没有提到它 注意:我实际上不知道“LocalVariableDecl

我正在做一个非常基本的游戏。它完全是文本。这听起来很简单,但当我声明用于确认玩家用户名的函数时,出现了此错误消息。 '语法错误,插入“;”以完成LocalVariableDeclarationStatement' 代码如下:

静态无效确认();{

正如您所看到的,它有一个分号,那么为什么会有一条错误消息告诉我添加一个分号呢? 我还注意到它提到了一个“LocalVariableDeclarationStatement”,我在代码中没有提到它


注意:我实际上不知道“LocalVariableDeclarationStatement”是做什么的,所以它可能很有意义。

编译器认为您想要声明一个局部变量;要做到这一点,您需要先插入分号,如下所示:

static void confirmation;
但是,您不能声明类型为
void
的变量,因此这也没有意义。如果您使用
int
而不是
void
,则更有意义

但看起来您实际上想要声明一个方法,而不是局部变量。在这种情况下,您需要完全删除分号:

static void confirmation() {
    // method body
}

我觉得奇怪的是eclipse建议添加一个分号,实际上它应该说(或建议您)添加一个body

请忽略“抽象线”


就实际问题而言,正如已经指出的,你不能有一个void变量作为开始在修饰符中,您不应该在参数列表的末尾有分号,因为它的语法无效。

我无法解释Eclipse显示此错误消息的原因,但我可以告诉您必须删除该分号。这是我最初做的,但它说添加samicolonI最初没有放分号。它告诉我,但什么时候是的,它仍然告诉我。当你关闭项目然后重新打开它时会发生什么?-Eclipse往往在语法上有缺陷