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

    1   public void mouseDra=gged(MouseEvent e) 
2    {
3         String str = "X =   " + e.getX() + "  Y = " + e.getY();
4         this.textFiled.setText(str);

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

请问报的信息可以 贴出来 么

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

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

java应该会自动转换,就像在Messagebox会自动转换一样

这是我积累的一些java项目源码 你可以参考参考 不过有点基础
http://download.csdn.net/album/detail/1369

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

这个是JAVA中的类型自动转换

你可以编译下面两行代码,看看有什么不同,再思考一下为什么

 System.out.println("3"+3+3);//答案为333

 System.out.println(3+3+"3");//答案为63

 //e.getX()返回整数,但是前面"X =   "是一个字符串,那么e.get()返回的值和它相加,仍未字符串。

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

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

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

我想知道为什么要报错。。。。