在函数boolean getString(StringBuffer str)调用的时候,传入的参数是在main中的str的一个拷贝,所以在main中的str没有进行任何操作,当然会这样了。

解决方案 »

  1.   

    to cuilichen(fjfjfjfj), java中传的不是引用吗?那我要想在getString中修改传入值呢?有什么办法?用数组?
      

  2.   

    boolean getString(StringBuffer str) {
    str.delete(0,str.length());
    str.append(new StringBuffer("1"));
    return true;
    }这样就可以了。。
    你把对象传进去,只能修改传进来的对象的属性,但是你不能把对象的地址也改了。。
      

  3.   

    StringBuffer is final Class.
      

  4.   

    我认为,boolean getString(StringBuffer str)中的str是局部变量,方法结束后消失。print的是str = new StringBuffer("")。
      

  5.   

    哈哈,主要原因在于有两个:其一是定义在Test中str,作用范围不同。其二,引用逻辑本身有点问题,返回类型和逻辑处理没有搭配好。
      

  6.   

    to wutaishan(wildwolf), 我只是举个例子,如果要“modify”的对象很多,不管哪种方式都不好办,Java为什么没有类似C++的引用机制呢?