JShell 如何查找变量或结果的类型

JShell How to find the type of Variable or Result

如何在 JShell 中查找变量或表达式结果的类型。

正在 Java

中试验按位运算符
jshell> byte b=5<<-1;
|  Error:
|  incompatible types: possible lossy conversion from int to byte
|  byte b=5<<-1;
|         ^---^

jshell> 5<<-1
 ==> -2147483648

jshell>

是否有像 Python type(5<<-1) 这样的替代方法来查找 Jshell 中表达式或变量的结果类型。

刚刚发现可以通过设置反馈模式来解决

/set feedback verbose

引用https://docs.oracle.com/javase/9/jshell/feedback-modes.htm

现在可以轻松地在响应中找到表达式或变量的类型。

jshell> 5<<-1
 ==> -2147483648
|  created scratch variable  : int

可以使用命令重置模式

/set feedback normal

并且可以通过调用

来查询当前模式
/set feedback

我找到了一个明确的方法来做到这一点(我是 运行 JDK11) 使用 /vars 命令

|  Welcome to JShell -- Version 11
|  For an introduction type: /help intro

jshell> 5<<-1
 ==> -2147483648

jshell> /vars
|    int  = -2147483648