private static void _2010_8_5_b() { String str = "abc";//new String("456"); _2010_8_5_test(str); System.out.println(str); } private static void _2010_8_5_test(String str) { System.out.println("before:"+str); str = "123"; System.out.println("after:"+str); } public static void main(String[] args) { // instance._2010_8_5(); _2010_8_5_b(); }
想通过方法_2010_8_5_test修改方法_2010_8_5_b() 中变量,但跳出方法_2010_8_5_b() 后,变量str值未变化,这是静态方法的特性吗?那应该怎样才能在静态方法中修改引用类型的变量。谢谢!
[code="java"]private static str;
private static void _2010_8_5_b() {
str = "abc";//new String("456");
_2010_8_5_test(str);
System.out.println(str);
}
private static void _2010_8_5_test(String str) {
System.out.println("before:"+str);
str = "123";
System.out.println("after:"+str);
}
public static void main(String[] args) {
// instance._2010_8_5();
_2010_8_5_b();
}[/code]
[code="java"]
private static String str;
private static void _2010_8_5_b() {
this.str = "abc";//new String("456");
_2010_8_5_test(str);
System.out.println(str);
}
private static void _2010_8_5_test(String str) {
System.out.println("before:"+str);
this.str = "123";
System.out.println("after:"+str);
}
public static void main(String[] args) {
// instance._2010_8_5();
_2010_8_5_b();
}[/code]