Java 9 中 JShell 的外部声明规则是什么?
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 A3) 可以忽略修饰符 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
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP