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