Search code examples
javajshell

JShell How to find the type of Variable or Result


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.


Solution

  • 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