static String o ="";
o =o+2的话会编译错误int x=2;
o=o+x的话会不会报错

解决方案 »

  1.   

    不会
    会调用类型的toString()方法
    public class test{        static String o = "";
            public static void main(String[] args){
                    Test temp = new Test();                o = o + temp;
                    System.out.println(o);
            }
    }
    class Test{
            public String toString(){
                    return "toString";
            }
    }
      

  2.   

    java里面String是一个对象,而你的x=2是个int型数,当然会报错static String o ="";
    o =o+2的话会编译错误int x=2;
    o=o+x的话会不会报错
      

  3.   

    public class Test {
    static String o="";
    {
    o=o+"2";
    }
    public static void main(String[] args) {
    System.out.println(o);//打印出来的还是""值
    int x=2;
    o=o+x;
    System.out.println(o);//打印出来"2"
    }
    }
    像这样就可以了,但是语句块中对字符串o的修改没有起到作用,只有把该语句放到方法里面才能修改成功,这就是java的语法规则。
      

  4.   

    把String的不变性,好好理解一下