Java9之REPL

来源:互联网 发布:管家婆单机版软件 编辑:程序博客网 时间:2024/06/05 02:53
最近在学Java9的一些新特性,一些学习心得笔记仅供参考。
1,什么是REPL
REPL — 交互式解释器环境。
R(read)、E(evaluate)、P(print)、L(loop)
输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程。
2,为什么使用REPL?
在Java中,如果你想执行一个简单的语句,我们要么创建一个带main方法的类,要么创建一个可以执行的Test类。当你正在启动Java程序的时候,如果你想执行某些语句并且想立刻看见执行结果,上面的做法看起来不是那么有用。
JShell试图去解决这个问题。Java开发者可以利用JShell在没有创建类的情况下直接声明变量,计算表达式,执行语句。JShell也可以从文件中加载语句或者将语句保存到文件中。并且JShell也可以是tab键进行自动补全的特性。
3,Java9中的REPL
Java 9 的一个特性是拥有了 REPL(read-eval-print loop)工具,这是一个 Java 的长期目标,在 Kulia 项目中经过多年研发后终于在 Java 9 中得以实现。
Java 9 的 REPL 名为 jShell,以交互式的方式对语句和表达式进行求值。开发者只需要输入一些代码,就可以在编译前获得对程序的反馈。命令行工具的功能包含 tab 自动补全和自动添加分号。jShell API 支持在 IDE 和其他工具中使用 jShell 功能,虽然这个工具本身不是 IDE。
REPL 的缺失是高校想要把 Java 从学校课程中剔除的一个原因(像 Python 和 Scala 之类的语言早就有 REPL 了)。但 Scala 语言的创始人 Martin Odersky 质疑 Java 中 REPL 的作用,他说 Java 是面向语句的,而 REPL 是面向表达式的。
原创粉丝点击