JShell 是Java 9版本中引入的命令行交互工具,它使程序员可以执行简单的语句,表达式,变量,方法,类,接口等。而无需声明main()方法。
在JShell中,编译器通过抛出错误来警告程序员有关类型转换的 问题。但是,如果程序员意识到这一点,则将需要显式强制转换。如果我们需要将较小的数据值存储到较大的类型转换中,则将需要隐式 转换。
整数 类型转换有两种:
文字到变量分配:例如,short s1 = 123456,数据超出范围。在编译时是已知的,并且编译器标记一个错误。
变量到变量分配:例如,s1 = i1。在该阶段存储在int中的值:4567,该值完全在short类型的范围内,并且编译器不会引发任何错误。可以通过显式强制s1 =(short)i1抢占它。
在下面的代码片段中,我们可以实现隐式和显式类型转换。
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> byte b = 128; | Error: | incompatible types: possible lossy conversion from int to byte | byte b = 128; | ^-^ jshell> short s = 123456; | Error: | incompatible types: possible lossy conversion from int to short | short s = 123456; | ^----^ jshell> short s1 = 3456 s1 ==> 3456 jshell> int i1 = 4567; i1 ==> 4567 jshell> s1 = i1; | Error: | incompatible types: possible lossy conversion from int to short | s1 = i1; | ^^ jshell> s1 = (short) i1; s1 ==> 4567 jshell> int num = s1; num ==> 4567