2016-01-27 22 views
-1

当我从toString()的return语句中删除+“”后运行程序时,会出现编译时错误。不知道为什么..请说出为什么它是这样的。为什么我们用双引号返回i +“”;

class Test 
    { 
     int i; 
     Test(int i) 
     { 
      this.i = i; 
     } 
     public int hashCode() 
     { 
      return i; 
     } 
     public String toString() 
     { 
      return i+""; 
     } 
     public static void main(String []args) 
     { 
      Test t1 = new Test(100); 
      Test t2 = new Test(110); 
      System.out.println(t1); 
      System.out.println(t2); 
     } 
    } 
+0

因为该函数正在返回字符串,所以如果删除+“”,则返回int。 – NSNoob

回答

3

toString方法的return类型为String,所以你不能只是

return i; 

,因为你会返回一个int;它需要被转换为String,&这正是

return i+""; 

一样。您也可以使用

return String.valueOf(i); // If you wanted something more "explicit" 
2

i由于是类型int

return型方法toString()的是String的。

需要转换为String

因此连接它"",结果是字符串i+""

""内的任何内容都表示一个字符串。

0

toString返回String。变量iint。类型转换在此处不起作用,因此您需要将它与""连接起来,将其转换为String

相关问题