为什么在用字节添加 int 时需要显式转换?
Why explicit cast required when adding int with byte?
在Java
这样做是合法的
byte = 27 // 27 treated as int; implicit cast to byte
但是当作为表达式的结果赋值时,Java需要显式转换
int a = 9;
byte b = 8;
byte c = a + b; // Compile error
这背后的原因是什么?
27
是文字。编译器知道它可以用 byte
(从 -128 到 127)表示。
a + b
是一个涉及变量的表达式。其结果可能无法在 byte
中表示
在Java
这样做是合法的byte = 27 // 27 treated as int; implicit cast to byte
但是当作为表达式的结果赋值时,Java需要显式转换
int a = 9;
byte b = 8;
byte c = a + b; // Compile error
这背后的原因是什么?
27
是文字。编译器知道它可以用 byte
(从 -128 到 127)表示。
a + b
是一个涉及变量的表达式。其结果可能无法在 byte