<分区>
我之前没有注意到,直到无意识地将 void
和 main
放错了位置。
public static main void (String[] args){
}
为什么会报错?
标签 java
<分区>
我之前没有注意到,直到无意识地将 void
和 main
放错了位置。
public static main void (String[] args){
}
为什么会报错?
最佳答案
method syntax (由 Java 语言规范指定)这样规定:
MethodDeclaration:
MethodHeader MethodBody
MethodHeader:
MethodModifiers (opt) TypeParameters (opt) Result MethodDeclarator Throws (opt)
MethodDeclarator:
Identifier ( FormalParameterList (opt) )
简要概述:
方法声明由方法头和方法体组成。
方法头由修饰符(可选)、类型参数(也是可选的)、结果(原始类型、void
或另一个 Object
)和方法声明符。可以提供抛出(这也是可选的)。
方法声明符由某种标识符组成;这通常被描述为带有任何正式参数(如果有)的方法名称。
让我们将其应用于 main
的有效声明:
public static void main (String[] args)
^ ^ ^ ^ ^
modifiers result identifier parameter list
如果你改变顺序(让我们以你的例子为例),那么你会得到这样的结果:
public static main void (String[] args)
^ ^ ^ ^ ^
modifiers result identifier parameter list
等一下。 main
不是有效结果。并且 void
不是有效标识符(这是两者中更严重的错误;保留字 can't be used as identifiers )。
这就是顺序很重要的原因; Java 有意解析元素的顺序以查看它们是否具有语法意义。引入与顺序无关的声明会让任何阅读代码的人极度感到困惑,并且可能会违反长期以来的方法声明约定。
关于java - 为什么方法声明中的顺序很重要?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23725713/