我一直认为main
Java中的方法一定是在类的内部,但这里它是在接口的内部
public interface Main {
static void main(String[] args){
System.out.println("HelloWorld");
}
}
它编译并运行没有问题
$ javac Main.java
$ java Main
HelloWorld
$ java -version
openjdk version "17.0.8" 2023-07-18
OpenJDK Runtime Environment (Alibaba Dragonwell Standard Edition)-17.0.7.0.7+7-GA (build 17.0.8+7)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Standard Edition)-17.0.7.0.7+7-GA (build 17.0.8+7, mixed mode, sharing)
那么它也可以是一个接口吗?
根据 JLS v17,这绝对没问题。从第 12.1 节- 重点是我的:
看起来其他一些文本尚未更新以在各处包含“或界面”,但这绝对是故意的更改。
第一个包含“或接口”的版本是v9 - v8 文本仍然只有“某些指定的类”。