我正在使用Java进行位移操作,以下代码按预期工作:
final byte value = 1;
final int shift = 1;
byte result = value << shift;
这会产生预期的值
2
。但是,如果我尝试将其提取到一个方法中,例如:private void shiftAndCheck(final byte value, final int shift) {
byte result = value << shift;
}
这会导致编译错误:
java: incompatible types: possible lossy conversion from int to byte
这个问题是关于这种方法为什么会失败的原因是什么?
0
的类型 - ZhongYubyte b = 1 + 1;
是可以的,但是byte b = byteVar + 1;
就不行了。 - ZhongYu