我是JAVA的新手,發現它的一些概念非常刺激,無論我多麼努力地嘗試,我都無法找到適合這種行爲的解釋......當然有這些問題但我仍然想知道我在這裏錯過了一些非常簡單的東西,或者JAVA是這樣的?Java中的字符串的奇怪問題
- 我在我的類A中有一個字符串數組,我希望它通過另一個類B的方法來填充......所以我創建了一個類B的對象到A中並調用方法B. xyz並將其等同於字符串陣列但BOOM我不能這樣做...... java拋出一個空指針異常..........我不知道爲什麼...
。
public class B{
public void xyz() {
String[] mystrings=new String[70];
for(int i=0;i<5;i++)
mystrings[i]=value;
return mystrings;
}
}
public class A {
public void abc() {
B b=new B();
String[] StringList;
StringList=b.xyz();
System.out.println(StringList.length);
}
}
我現在有一個類似的代碼片段StrinList可悲的是長度爲70 ....如果我想打印這個數組我沒有任何其他方式的所有字符串....記住,即使在B類中mystring的大小是70,只有5個組件被正確初始化........考慮到我在A類中,無法找出B中執行for循環的次數。 .....我如何精確地循環遍歷A中的所有StringList元素.........
PS:有解決方法可以解決這個問題,但我想知道爲什麼會發生這種情況,即爲什麼長度屬性不會根據初始化的組件而改變?
您可能不希望「將B類的對象創建爲A」,而是想要引用處於活動狀態的A對象。爲了獲得更好的幫助,請考慮發佈已格式化的代碼,以便我們可以閱讀它。 – 2011-04-30 21:28:54
你的代碼不能編譯。我不確定你是如何執行它的。 「String [] mystrings [70];」是不正確 – fmucar 2011-04-30 21:32:17
編輯刪除通過引用標記傳遞,你沒有任何地方傳遞任何東西。 – debracey 2011-04-30 21:32:59