byte a=1;
byte b=2;
byte c=(byte)(a+b);
a,b是byte型的数据,为什么a+b要加强制转换为Byte呢??ps:我看ECLIPSE的错误提示是a+b是整型不能转换为Byte型.

解决方案 »

  1.   

    好像java规定了默认的+操作符返回的结果是int类型。你把他变成byte是需要强制转型的
      

  2.   

    哦!!我知道了,int转成byte要强制转换但byte a=1;为什么不写成byte a=(byte)1呢!!
      

  3.   

    我指的是+操作符返回的结果喔,
    byte a = 1; 
    因为1~127本来就属于byte的范围,就无须强制转型了。
      

  4.   

    int型以下的类型进行运算自动会升为int型。结果也就自然是int的了