考慮以下兩個類(一個是Main
與main()
法):字符串[]指着在VO相同的參考對象
的VO類:
public class TheVO {
private String[] theValues = null;
/**
*
*/
public TheVO(String[] theParam) {
this.theValues = theParam;
}
/**
*
* @return
*/
public String[] getValues(){
return this.theValues;
}
@Override
public String toString() {
StringBuffer buf = new StringBuffer("");
if(this.theValues == null){
return buf.toString();
}
for(String read:this.theValues){
buf.append(read);
buf.append(" ");
}
return buf.toString().trim();
}
}
主分類:
執行後public class Main {
/**
*
*/
public Main() {
super();
}
/**
* @param args
*/
public static void main(String[] args) {
TheVO theV = new TheVO(new String[]{"Hello","World!!"});
String[] vale = theV.getValues();
vale[0] = "Goodbye";
System.out.println(theV);
}
}
結果:
再見世界!
問:
我知道vale
數組變量是指在構造函數解析相同的變量,如果我改變的指標之一陣列中的它在VO改變同樣String[]
。
如何「修理」或更改TheVO類,這樣我的結果是?:
的Hello World!
我不不想訴諸使用清單。仍想返回字符串[]。 – Koekiebox 2011-04-14 09:45:23
然後你需要做防禦性的副本。 – 2011-04-14 09:46:05