Java 配列で clone() メソッドを使用して、文字列配列を複製します。複製後、新しい配列に新しい文字列が割り当てられ、新しいアドレスが割り当てられることを期待しています。しかし...私は少し異なる動作をしました。これを見てください:
(印刷されます:
same address
One
)
public class ArrayCopyClone {
static String[] array2 = new String[] {"One", "Two", "Three"};
public static void main(String[] args) {
String[] copy2 = array2.clone();
if (copy2[0] != array2[0]) {
System.out.println("good"); // will never show up
} else {
System.out.println("same address"); // I'm expecting never be here
}
array2[0] = "new";
System.out.println(copy2[0]); // "One", and this is OK (it means we have a copy)
}
}
文字列シャドーイングに関連していますか?それはすべきですか?