为什么会出现编译错误?
开发环境告诉你返回类型int
。byte
,short
在返回类型中不起作用,怎么回事?你能解释一下吗。
public byte sum(byte a, byte b) {
return a + b;
}
为什么会出现编译错误?
开发环境告诉你返回类型int
。byte
,short
在返回类型中不起作用,怎么回事?你能解释一下吗。
public byte sum(byte a, byte b) {
return a + b;
}
表达式类型(字节 + 字节)= int。
这样做是为了避免位网格溢出。因此,必须通过显式类型转换明确告诉编译器“我知道不会溢出,不用担心”:
或者,如果不确定加a+b后会不会溢出,把函数类型改成int。