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(); | ^------^
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

