我经历了几个关于JShell的教程,我仍然不了解最重要的部分:为什么我甚至会使用JShell?
这就是Oracle所说的:
"您可以测试单个语句,尝试不同的a变体 方法,并在JShell中使用不熟悉的API进行实验 会话"
是的,很棒,但对于所有这些事情,我可以使用IDE。我明白,REPL应该能够更快地进行代码评估。但是,在带有Sysout的虚拟Hello World项目中在IDE中测试一段代码肯定不会慢一些?
事实上,IDE提供自动完成功能,及早发现错误,我可以通过鼠标点击检查方法/类的实现。这一切都应该在IDE中比在JShell中更快地进行代码测试吗?
我错过了什么? 有人可以给我一些用例,使用JShell比使用IDE更好吗? 你们是如何使用JShell的?
答案 0 :(得分:4)
虽然我真的鼓励你继续阅读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
的String(水果名称)到String(它们的颜色),然后在后面的阶段添加更多的水果,并省略我的那些颜色不确定。然后最终获得所有那些红色水果的清单。当然,既然我现在正在学习Java 9,我会尝试使用与Java9一样多的API。
虽然您会尝试在IDE中添加所有这些(^^)代码,但您可以自己注意到最终需要花时间来实现 Immutable Map Static Factory Methods. <的所有特性/ p>
PS :
Robert有presented Jshell here,详细说明了JShell的有效性。
正如您所做的所有上述操作一样,请记住,Jshell不是IDE的目标。
通常,所有这一切都通过绕过“代码 - &gt;编译 - &gt;执行”循环的编译阶段对语言进行简单的实验。 read-eval-print-loop