如何在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

更新于:2020年4月21日

200 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告