class BadArithmetic {
static byte addOneAndOne() {
byte a = 1;
byte b = 1;
byte c = (a + b);
return c;
}
}
当遇到上述代码时,javac会给出如下提示:
type.java:6: possible loss of precision
found : int
required: byte
byte c = (a + b);
^
1 error
为了对这种情况进行补救,必须把a + b所获得的int类型结果显式转换为byte类型。代码如下:
class GoodArithmetic {
static byte addOneAndOne() {
byte a = 1;
byte b = 1;
byte c = (byte)(a + b);
return c;
}
}
该操作能够通过javac的编译,并产生GoodArithmetic.class文件。