当前位置:编程学习 > JAVA >>

java 中String类型变量作为实参

void doTag(String a) {
    a.concat("test");
}

为什么无法修改传进来的string? --------------------编程问答-------------------- 呃,建议 LZ 先在看看 api 中 concat 方法是如何使用的,再好好学习 JAVA 基础。 --------------------编程问答-------------------- 你可以试试把a打印出来看看是什么结果,然后再创建一个String的对象 将其复制为a.concat("test");
然后打印该对象 看下结果 --------------------编程问答-------------------- String本身是不可修改的。
应该改为: a = a.concat("test");


对了,另外再顺便说下:由于Java函数参数是传值,所以在doTag()函数中,无论怎么设置 a="xxoo",对主调函数的实参不造成任何影响。 --------------------编程问答-------------------- If the length of the argument string is 0, then this String object is returned. Otherwise, a new String object is created,会重新创建一个对象,并不是修改传递进来的a
试试
String anyName=a.concat("test");
a=anyName; --------------------编程问答-------------------- java是值传递的,方法中无论怎么改变参数的值,都不会对原始值产生影响。 --------------------编程问答-------------------- 如果是传值的,那么是不是,在函数内部new了一个新的String,普通的都是传进的句柄,好像String比较特别啊?
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,