在 Java 9 的 JShell 中,哪些修饰符不能用于顶级声明?
JShell 是一种交互式工具,用于学习 Java 语言和对 Java 代码进行原型设计。它是一个REPL(Read-Evaluate-Print-Loop,读-求值-打印-循环),可以对一经输入就求值的声明、语句和表达式进行求值并立即将结果打印到 JShell。此工具在命令行提示符下运行。
public、protected、private、static 和 final 等修饰符不允许用于顶级声明,可以带着警告忽略它们。synchronized、native、abstract 和default 等关键字不允许在顶级方法中使用,可能会出现错误。
在下面的代码片段中,我们创建了final 和 static 变量。它会向用户打印出一条警告消息,即“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"
广告