为什么以及如何使用 JShell?
Why and how do you use JShell?
我看了几个 JShell 教程,但我仍然不明白最重要的部分:我为什么要使用 JShell?
这里是 Oracle 所说的:
"You can test individual statements, try out different variations of a
method, and experiment with unfamiliar APIs within the JShell
session".
是的,很好,但是对于所有这些我都可以使用 IDE。我明白,REPL 应该使代码评估更快。但是,使用 Sysout 在虚拟的 Hello World 项目中测试 IDE 中的一段代码肯定不会更慢吗?
事实上,IDEs 提供自动完成功能,及早检测错误,我可以通过单击鼠标检查 method/class 的实现。这一切应该使 IDE 中的代码测试比在 JShell 中更快?
我错过了什么?
有人可以给我几个用例,其中使用 JShell 比使用 IDE 更好吗?
你们是怎么使用 JShell 的?
虽然我真的会鼓励你继续阅读 The Java Shell 动机和目标。
但要稍微动手回答你的问题,我真的很高兴知道你在 IDE 上尝试这个时所花的时间和你将遵循的程序。所以,这些很少,你去吧:-
1. 我最近了解到 Java 9 为集合引入了重载的便利工厂方法,然后很好奇它们是做什么的以及我是如何制作的使用它们。
步骤
-> Type 'jshell' on command prompt (assuming JAVA_HOME is set to JDK9's bin)
-> Type 'List.o'
-> Press Tab (completes the `of`)
-> Tab displays all signatures
-> Tab starts reading the documentation from first
2. 坚持代码的语法怎么样?如果您在上图中注意到 List
的初始化甚至懒得关心存储它的变量、终止分号等
3. 您能多快找出您将要执行的某段代码抛出的异常?所以,这里有一个用例,我想创建一个 Map
的字符串(水果名称)到字符串(它们的颜色),然后在后期向它添加更多的水果并省略我的那些颜色不确定。最后得到所有红色水果的清单。当然,由于这些天我正在学习 Java 9,因此我会尝试使用与 Java9.
中一样多的 API
虽然您会尝试在 IDE 中添加所有这些 (^^) 代码,但您自己会注意到最终实现 [= 的所有这些特征所花费的时间16=]
PS:
Robert presented Jshell here 详细介绍了 JShell 如何有效。
在执行上述所有操作时,请记住,成为 IDE.
并不是 Jshell 的目标
所有这些,一般来说,通过绕过 "code -> compile -> execute" 循环的编译阶段,用一种语言进行简单的实验。 read-eval-print-loop
我看了几个 JShell 教程,但我仍然不明白最重要的部分:我为什么要使用 JShell?
这里是 Oracle 所说的:
"You can test individual statements, try out different variations of a method, and experiment with unfamiliar APIs within the JShell session".
是的,很好,但是对于所有这些我都可以使用 IDE。我明白,REPL 应该使代码评估更快。但是,使用 Sysout 在虚拟的 Hello World 项目中测试 IDE 中的一段代码肯定不会更慢吗?
事实上,IDEs 提供自动完成功能,及早检测错误,我可以通过单击鼠标检查 method/class 的实现。这一切应该使 IDE 中的代码测试比在 JShell 中更快?
我错过了什么? 有人可以给我几个用例,其中使用 JShell 比使用 IDE 更好吗? 你们是怎么使用 JShell 的?
虽然我真的会鼓励你继续阅读 The Java Shell 动机和目标。
但要稍微动手回答你的问题,我真的很高兴知道你在 IDE 上尝试这个时所花的时间和你将遵循的程序。所以,这些很少,你去吧:-
1. 我最近了解到 Java 9 为集合引入了重载的便利工厂方法,然后很好奇它们是做什么的以及我是如何制作的使用它们。
步骤
-> Type 'jshell' on command prompt (assuming JAVA_HOME is set to JDK9's bin)
-> Type 'List.o'
-> Press Tab (completes the `of`)
-> Tab displays all signatures
-> Tab starts reading the documentation from first
2. 坚持代码的语法怎么样?如果您在上图中注意到 List
的初始化甚至懒得关心存储它的变量、终止分号等
3. 您能多快找出您将要执行的某段代码抛出的异常?所以,这里有一个用例,我想创建一个 Map
的字符串(水果名称)到字符串(它们的颜色),然后在后期向它添加更多的水果并省略我的那些颜色不确定。最后得到所有红色水果的清单。当然,由于这些天我正在学习 Java 9,因此我会尝试使用与 Java9.
虽然您会尝试在 IDE 中添加所有这些 (^^) 代码,但您自己会注意到最终实现 [= 的所有这些特征所花费的时间16=]
PS:
Robert presented Jshell here 详细介绍了 JShell 如何有效。
在执行上述所有操作时,请记住,成为 IDE.
并不是 Jshell 的目标
所有这些,一般来说,通过绕过 "code -> compile -> execute" 循环的编译阶段,用一种语言进行简单的实验。 read-eval-print-loop