如何在Java 9的JShell中实现整数类型转换?

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