在 Java 9 的 JShell 中,哪些修饰符不能用于顶级声明?


JShell 是一种交互式工具,用于学习 Java 语言和对 Java 代码进行原型设计。它是一个REPL(Read-Evaluate-Print-Loop,读-求值-打印-循环),可以对一经输入就求值的声明语句表达式进行求值并立即将结果打印到 JShell。此工具在命令行提示符下运行。

publicprotectedprivatestaticfinal 等修饰符不允许用于顶级声明,可以带着警告忽略它们。synchronizednativeabstractdefault 等关键字不允许在顶级方法中使用,可能会出现错误

在下面的代码片段中,我们创建了finalstatic 变量。它会向用户打印出一条警告消息,即“Modifier 'final' or 'static' not permitted in top-level declarations, ignored(修饰符 'final' 或 'static' 不允许用于顶级声明,已忽略)”。

示例 1

C:\Users\User\>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro

jshell> final int x = 0
| Warning:
| Modifier 'final' not permitted in top-level declarations, ignored
| final int x = 0;
| ^---^
x ==> 0

jshell> x = 1
x ==> 1


示例 2

jshell> static String str = "Tutorix"
| Warning:
| Modifier 'static' not permitted in top-level declarations, ignored
| static String str = "Tutorix";
| ^----^
str ==> "Tutorix"

更新于: 2020 年 4 月 1 日

140 次浏览

开启您的职业生涯

完成课程获得认证

开始
广告