Java里的关于类型转换的一个小问题

  public void mouseDra=gged(MouseEvent e) 

 {

      String str = "X =   " + e.getX() + "  Y = " + e.getY();

  this.textFiled.setText(str);


    }

            我的问题在第三行,e.getX()返回的是一个int类型的数,但是括号中是String类型,并且str也声明为字符串。那没请问:为什么编译时不报错呢?


一只名叫tom的猫
浏览 677回答 8
8回答

慕虎7371278

噢,程序自动做类型转换了。因为所有的对象都继承自Object,都有ToString()方法;

暮色呼如

你在+的时候自动转换了,如果以后有什么类型转string也可以直接加一个空的

哈士奇WWW

当整形赋值给字符串变量时,整形变量会事先转换成字符串变量(相当于把整形变量当成字符串),然后在赋值给字符串。也就是类型自动转换

阿晨1998

在相同的运算级的情况下从左到右顺序执行运算,字符串碰到基本类型int时,+号就是连接符了,而不是运算符了

largeQ

java的数据类型转换分为两种,显性和隐性的,这里就是隐性的。基本数据类型的有隐性数据类型,或者强制数据类型转换,百度很多。而在自己定义的类中,如果重写了ToString()的话,和某个String类型的输出都会强制根据ToString的内容强制输出。

潇潇雨雨

我想知道为什么要报错。。。。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java