Java 9 中 JShell 的外部声明规则是什么?

javaobject oriented programmingprogramming更新于 2025/10/17 15:08:17

JShell 是 Java 9 中引入的命令行工具,它是 Java 第一个官方 REPL 工具,用于创建一个简单的编程环境,该环境读取用户的输入、对其进行评估并打印结果。

类或接口之外的声明(以及类和接口本身的声明)是根据以下规则创建的。

外部声明规则:

1) 访问修饰符,如 public、protected 和 private 可以被忽略。所有声明片段都可以被所有其他片段访问。

jshell> private int i = 10;
i ==> 10

jshell> System.out.println(i);
10

2) 修饰符final 可以忽略。允许更改和继承。

jshell> final class A {void m() {} }
|   Warning:
|   Modifier 'final' not permitted in top-level declarations, ignored
|   final class A {void m() {} }
|   ^---^
|   created class A

3) 由于不存在容器类,修饰符 static  可以被忽略。

jshell> static char letter = 'A;
|   Warning:
|   Modifier 'static' not permitted in top-level declarations, ignored
|   static char letter = 'A';
|   ^----^
letter ==> 'A'

4) 修饰符的 default  和 synchronized  不允许。

jshell> synchronized void method() {}
|   Error:
|   Modifier 'synchronized' not permitted in top-level declarations
|   synchronized void method() {}
|   ^----------^

5) 修饰符 abstract 仅允许在类中使用。

jshell> abstract void method();
|   Error:
|   Modifier 'abstract' not permitted in top-level declarations
|   abstract void method();
|   ^------^

相关文章


有用资源