2010-08-19 13 views
1

下面的測試代碼導致字符串數組(第6行)上出現「空指針偏差」錯誤。這導致NullPointerException。錯誤:字符串的空指針偏差

public class TestString { 
public static void main (String args[]) { 
String test [] = null; 
for (int i =0; i < 5; i++) { 
    String testName = "sony" + i; 
    test [k] = testName; 
} 
} 
} 

- 我該如何解決這個問題? - 這是什麼導致這個錯誤?

感謝, 索尼

回答

6

需要初始化您的數組是這樣,之前:當你使用數組

test = new String[5]; 

時,JVM需要知道它的存在和它的大小。

在java中有很多方法來初始化數組。

test = new String[5]; 

只需創建一個具有五個放置位置的數組。 (你不能添加第六元件)

test = new String[]{"1", "2"}; 

具有兩個炮位創建一個數組幷包含值1和2。

String[] test = {"1", "2"}; 

創建具有兩個炮位的陣列,並且其中包含的值1和2.但是,正如您注意到它必須與陣列聲明在同一時間。

在Java數組中,有靜態,您在創建它時指定了一個大小,並且不能更改它。

0

您未初始化您的陣列。在第三行中,將其設置爲null,然後在第六行中嘗試將字符串設置爲不存在的數組。您可以像這樣初始化陣列:

String test [] = new String[5]; 
3

代碼中的錯誤太多。 1)什麼是k? 2)您需要首先初始化測試數組。

String test[] = new String[5]; // or any other number