62,615
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) throws Exception {
String str = "abc";
System.out.println(str); // abc
str = test2(str);
System.out.println(str); // cba
}
private static String test2(String str) {
return "cba";
}
public class Test {
public static void main(String... args){
//test array
String[] testStr1 = {"old string-1"};
refStringTestArray(testStr1);
System.out.println(testStr1[0]);
//test bean
RefString ref = new RefString();
ref.setTemp("old string-2");
refStringTestBean(ref);
System.out.println(ref.getTemp());
}
public static void refStringTestArray(String[] array){
array[0] = "new string by array!";
}
public static void refStringTestBean(RefString ref){
ref.setTemp("new string by ref-bean!");
}
}
class RefString{
String temp;
public String getTemp() {
return temp;
}
public void setTemp(String temp) {
this.temp = temp;
}
}
public static void main(String[] args){
String[] b = new String[]{"adfsdf", "werwere"};
change(b);
System.out.println(b[0]);
}
public static void change(String[] b){
b[0]="23423434";
}
楼主想法好奇特,在Java中貌似一般都不希望这么做,因为会弄混。
public static void main(String[] args) throws Exception{
String s = "abc";
changeString(s);
System.out.println(s); //
}
public static void changeString(String s) throws Exception{
String re = s;
s = "12345"; //将s改成新的字符串
Field valueFieldOfString = String.class.getDeclaredField("value");
valueFieldOfString.setAccessible(true);
valueFieldOfString.set(re,s.toCharArray());
}
最后打印 12345. 用的jdk 8. 看下是不是你要的结果.