前面的章节,我们已经或多或少提到了反馈模式。我思考了片刻后,觉得有必要对这个反馈模式单独拎出一章节来细讲下。
反馈模式很重要!
为什么很重要?
因为它决定了我们输入的代码回车运行之后的状态,是新定义,还是修改? 是运行成功呢还是失败抛出异常?是完美的代码还是有很多警告? 等等,这些细节,都隐藏在反馈模式之下。
反馈模式决定了 JShell 中的提示,反馈和其它交互。
JShell 提供不同反馈级别的预定义模式,而且还允许我们根据需要创建自定义模式。
设置反馈模式
反馈模式定义了与 JShell 交互时使用的提示和反馈。
为方便起见,JShell 提供不同反馈级别的预定义模式,而且还允许我们根据需要创建自定义模式。
JShell 不允许修改预定义的模式,但允许我们将它们用作自定义模式的基础。
预定义模式按详细程度的降序排列是 verbose
(详细)、normal
(正常)、concise
( 简洁) 和 silent
( 静默 )
下表显示了这些预定义模式之间的区别
模式 | 显示格式 | 显示声明 | 显示更新 | 显示命令 | 交互提示格式 |
---|---|---|---|---|---|
verbose | name ==> value (和描述) | Yes | Yes | Yes | \njshell> |
normal | name ==> value | Yes | No | Yes | \njshell> |
concise | name ==> value (只显示表达式) | No | No | No | jshell> |
silent | No | No | No | No | -> |
- 「 模式 」列指示正在描述的模式
- 「 显示格式 」 列指示对具有值的片段显示的内容,例如表达式,赋值和变量声明
- 「 显示声明 」 列指示是否为声明或方法,类,枚举,接口和注释接口提供反馈
- 「 显示更新 」 列指示是否显示除当前代码段之外的更改
- 「 显示命令 」 列指示命令是否提供指示成功的反馈
- 「 交互提示格式 」 列指示使用的提示
默认的反馈模式是 normal
。但可以通过设置命令行选项或使用 /set feedback
命令更改反馈模式,例如
[yufei@www.twle.cn ~]$ jshell | 欢迎使用 JShell -- 版本 10.0.2 | 要大致了解该版本, 请键入: /help intro jshell> /set feedback verbose | 反馈模式: verbose jshell> 2 + 2 $1 ==> 4 | 已创建暂存变量 $1 : int jshell> /set feedback silent -> -> 2+2 -> /set feedback normal | 反馈模式: normal jshell> 2 + 2 $3 ==> 4 jshell> /set feedback concise jshell> 2+2 $4 ==> 4 jshell>
请注意,当设置模式为 normal
或 verbose
时,会显示命令返回。 但简洁和静音模式则不会。
另请注意,三种不同形式的反馈模式中,当模式设置为静音时,表达式 2+2
并不会显示任何反馈信息。
目前尚无回复