1. 什么是JShell?
JShell是Java 9 中引入的一个交互式命令行工具。它允许用户在没有写成完整的Java程序的情况下实时编写和测试Java代码片段。
2. JShell的优点
使用JShell的优点包括:
快速测试代码片段
方便的数据类型推断
易于掌握Java语言特性
可作为学习Java的实用工具
3. 编程方式创建JShell实例
要以编程方式创建JShell实例,我们需要使用JShell API。JShell API是Java 9中添加的新API之一。使用JShell API,我们可以以编程方式进行JShell操作,而无需在命令行界面中直接操作JShell。
3.1 建立JShell环境和设置
我们首先需要建立JShell环境。要建立JShell环境,我们需要创建一个JShell.Builder对象,调用其build()方法并传递JShellExecutionControl参数和JShellExecutionEnv参数。
JShell.Builder builder = JShell.builder();
JShell jshell = builder.build();
在建立JShell实例之后,我们需要执行任何开头工作。例如,我们可以导入必要的Java类或设置类路径。为此,我们需要调用JShell的eval()方法并传递这些命令:
jshell.eval("import java.util.*;");
jshell.eval("import java.io.*;");
jshell.eval("var temperature = 0.6;");
这样,我们就将temperature变量设置为0.6。
3.2 运行代码片段
要在JShell环境中运行代码片段,我们需要调用JShell的eval()方法并传递代码字符串。
jshell.eval("int a = 1 + 2;");
在此示例中,我们将a变量设置为3。
3.3 捕获执行结果
我们可以使用JShell的snippet()方法捕获执行结果。此方法将返回一个Stream对象,其中包含执行代码片段时生成的所有反馈数据(如执行结果、打印语句和异常)。
List<String> output = new ArrayList<>();
jshell.snippets().forEach(s -> {
output.add(s.toString());
});
运行此代码后,output列表将包含执行的结果。
4. JShell实例的销毁
当JShell实例不需要时,应该进行销毁以释放资源。
jshell.close();
5. 总结
在Java 9中,我们可以使用JShell API以编程方式创建和操作JShell实例。这使得我们可以更方便地测试Java代码和快速实验Java语言特性。