Jic*_*hao 9 java string reference
private static void changeString(String s) {
s = new String("new string");
}
public static void main(String[] args) {
String s = new String("old string");
changeString(s);
System.out.println(s); // expect "new string"
}
Run Code Online (Sandbox Code Playgroud)
我怎么能用s作为方法changeString 的唯一参数来输出"new string" ?
谢谢.
rsp*_*rsp 10
在Java中,参数通过值传递,对象参数传递对对象的引用,这意味着您可以更改参数的引用,但这不会更改传递引用的对象.您有两种可能性,返回新对象(首选)或将引用传递给可以接收新引用的容器(集合,数组等)例如:
private static String changeStringAndReturn(String s) {
return new String("new string");
}
private static void changeStringInArray(String[] s) {
if (null != s && 0 < s.length) {
s[0] = new String("new string");
}
}
Run Code Online (Sandbox Code Playgroud)
Java中的引用按值传递,因此即使您修改函数内部的引用,更改也不会反映回调用函数,因为您在函数内部修改的内容只是原始引用的副本而不是原始引用本身.
但是您可以从changeString方法返回新字符串,而不是尝试修改那里(函数内部)的引用.
归档时间: |
|
查看次数: |
4723 次 |
最近记录: |