在 Java 9 中,我们需要遵循 JShell 中的哪些规则?

javaobject oriented programmingprogramming更新于 2025/10/25 13:32:17

Java 9 引入了一个交互式 REPL(Read-Evaluate-Print-Loop)工具:JShell,它允许我们执行代码片段并立即获得结果。代码片段是可以使用标准 Java 语法的指令。它代表单个表达式、语句或声明。

以下是使用 JShell 工具时需要遵循的一些规则。

JShell 工具的规则:

  • 代码片段类似于导入声明、类声明、方法声明、接口声明、字段声明、语句和主表达式。
  • 不允许使用 package 声明。 JShell 代码位于 transient JShell 包下。
  • 访问修饰符:public、protected 和 private,以及修饰符:final  和 static  不允许出现在 top-level  声明中。如果提供,则会通过警告忽略它们。
  • 修饰符:default  和 synchronized  完全不允许出现在 top-level  声明中。但是,它可以在嵌套上下文中允许。
  • 只能在类中允许使用 abstract  修饰符。
  • 当用户输入不完整时(例如,我们只输入 System.out 并跳过 println  部分),JShell 自动完成 API 会提示更多用户输入。
  • 如果用户输入完整,但没有分号,JShell 可以自动附加分号。

在下面的示例代码片段中,我们创建了 Employee  类及其必要的 getter 方法,并使用 new 运算符对其进行实例化。

代码片段

jshell> class Employee {
   ...>    private String firstName;
   ...>    private String lastName;
   ...>    private String designation;
   ...>    public Employee(String firstName, String lastName, String designation) {
   ...>       this.firstName = firstName;
   ...>       this.lastName = lastName;
   ...>       this.designation = designation;
   ...>    }
   ...>    public String getFirstName() {
   ...>       return firstName;
   ...>    }
   ...>    public String getLastName() {
   ...>       return lastName;
   ...>    }
   ...>    public String getDesignation() {
   ...>       return designation;
   ...>    }
   ...>    public String toString() {
   ...>       return "Name = " + firstName + ", " + lastName + " | " +
   ...>              "designation = " + designation;
   ...>    }
   ...> }
| created class Employee

jshell> Employee emp = new Employee("Sai", "Adithya", "Content Developer");
emp ==> Name = Sai, Adithya | designation = Content Developer

相关文章


有用资源