java基本类型的转换

码农同学 2013-01-29 11:23:22
今天遇到一个很奇葩的程序:
public class Llandaff{
public static void main(String argv[]){
Llandaff h = new Llandaff();
h.go();
}
public void go(){
char c = 'c';
int i = 10;
c += i;//ok
c = c + i;//编译错误
}
}

为嘛前面的没有编译错误?
...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
battle888 2013-01-30
  • 打赏
  • 举报
回复
c += i;//ok +=默认自动转换了 c = c + i;//编译错误 因为char型和int相加会提升到int型
码农同学 2013-01-30
  • 打赏
  • 举报
回复
引用 1 楼 AA5279AA 的回复:
java的语法规则, c += i;//ok 凡是使用+=这样的方式都默认自动转换了。。 想更明白一下的话你输出一下c的类型看看
哦哦,原来=+还有这功能~~
abc41106 2013-01-30
  • 打赏
  • 举报
回复
引用 2 楼 battle888 的回复:
c += i;//ok +=默认自动转换了 c = c + i;//编译错误 因为char型和int相加会提升到int型
正解
Danvie 2013-01-30
  • 打赏
  • 举报
回复
你可以试试short i;也是一样的,int 的一个数与之进行运算,也是+=可以,自动转换类型。
失落夏天 2013-01-29
  • 打赏
  • 举报
回复
java的语法规则, c += i;//ok 凡是使用+=这样的方式都默认自动转换了。。 想更明白一下的话你输出一下c的类型看看

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧