问题
How to find the type of a variable or Expression Result in JShell.
Was experimenting Bitwise Operators in Java
jshell> byte b=5<<-1;
| Error:
| incompatible types: possible lossy conversion from int to byte
| byte b=5<<-1;
| ^---^
jshell> 5<<-1
$2 ==> -2147483648
jshell>
Is there an alternative like Python type(5<<-1) to find the result type of expression or variable in Jshell.
回答1:
Just figured out it can be solved by setting the feedback mode.
/set feedback verbose
Reference https://docs.oracle.com/javase/9/jshell/feedback-modes.htm
Now can easily find the type of an expression or variable in the response.
jshell> 5<<-1
$15 ==> -2147483648
| created scratch variable $15 : int
The mode can be reset by using the command
/set feedback normal
and the current mode can be queried by simply calling
/set feedback
回答2:
I found an explicit way to do this (I'm running with JDK11) using the /vars command
| Welcome to JShell -- Version 11
| For an introduction type: /help intro
jshell> 5<<-1
$1 ==> -2147483648
jshell> /vars
| int $1 = -2147483648
来源:https://stackoverflow.com/questions/48629237/jshell-how-to-find-the-type-of-variable-or-result