今天在java中遇到一个代码片段,如下:
long longValue = 100;
byte b = (byte)(short)(int)longValue;
byte byteValue = 100;
long l = (long)(int)(short)byteValue;
System.out.println(b+l);
Run Code Online (Sandbox Code Playgroud)
多次类型转换的目的是什么,从 int 到 short 到 byte,从 short 到 int 到 long?如果我直接从 long 转换为 byte 或反之亦然,会有什么不同吗?
即使没有显式类型转换,上面的代码也没有任何区别!
多次类型转换的目的是什么,从 int 到 short 到 byte,从 short 到 int 到 long?
没有目的。时期。
byte b = (byte)(short)(int) longValue;
long l = (long)(int)(short) byteValue;
Run Code Online (Sandbox Code Playgroud)
100% 相当于:
byte b = (byte) longValue;
long l = byteValue;
Run Code Online (Sandbox Code Playgroud)
您问题中的代码可能是以下之一:
在一两种情况下,一系列类型转换实际上很有用。这是一个:
int ch = ...
System.out.println("char is '" + (char)(byte) ch + "'");
Run Code Online (Sandbox Code Playgroud)
在此,(byte) 缩小的int一个8位有符号值,然后(char) 加宽到一个16比特的无符号值。然后+运算符导致Character.toString(char)用于将值转换为字符串。(如果省略(char),则该值将被格式化为数字,而不是字符...)
(注意:上面的代码有问题。我用它来说明链接类型转换有时是一件有用的事情。)
| 归档时间: |
|
| 查看次数: |
244 次 |
| 最近记录: |