Java编译器错误信息"<identifier> expected"是什么意思?

5
class if{
    public static void main (String args[]){
        int x = 9;
        if (x <= 9){
            System.out.println("Yay");
        }else{
            System.out.println("Yay");
            }
        }
    }

我正在使用编译器从Notepad++文本编辑器中运行此内容,但编译器出现了错误提示:<identifier> expected class if,和另一个错误提示:illegal start of expression。还有一条错误提示:error ";" expected,总共出现了9个错误。
我已经确保匹配所有的{}(),甚至删除了程序并重新尝试,但结果仍然相同。

1
如果您发布确切的编译器错误,那将会很有帮助。 - Alexander Questioning Bresee
请查看Java语言关键字:http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html - Julien Lafont
5个回答

12

if是Java中的一个保留关键字(如您if语句中所见),因此不是一个合适的类名。选择另一个名称作为您的类名,例如IfTesting

按照约定,所有类名都以大写字母开头。有关有效和无效Java标识符的详细信息,请参阅Java语言规范。简而言之,它不能是关键字truefalsenull


好的,谢谢提供链接。我会在可以的时候接受这个答案。指出我在程序中使用了if应该是一个很明显的提示。 - Tarrant
我忘了给其中一个参数添加标识符,但错误信息却指向代码中较早的class行。不过这个问答帮了我。 - n611x007

1

不应该将类命名为“if”。它是 Java 的一个保留关键字(顺便说一句,你在程序中使用了它)。

此外,按照惯例,在 Java 中所有的类都以大写字母开头。


我有一种感觉,这个问题应该是非常简单的。好吧,现在我知道不该做什么了。当然,感觉自己非常愚蠢,哎呀。谢谢。 - Tarrant
@Tarrant 没有理由感到愚蠢!我们都曾经是初学者。你会犯错误,但你会从中学习。 - dlev

0

另外,它是(String[] args)

而不是(String args[])


1
它是相同的,只是调用函数的方式不同。 - afxentios

0

你不能使用关键字来命名你的类或变量。


0

你不能将类命名为 if,因为它是一个关键字。查看this获取更多示例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接