我不理解以下Java代码背后的逻辑以及为什么第一行有效,而其他代码则不然:
//works
byte b = 50 * 2;
//throws precision error
byte b = 50;
b = b * 2;
//throws precision error
byte b = 100 * 2;
答案 0 :(得分:0)
@Jon Skeet是的第二个也给出异常,因为java对这种情况应用隐式upcast意味着b * 50的输出是100但是它是int类型所以你必须向下转换为byte ...