2013-11-28 40 views
2

我想添加一個字符到一個字符數組的字符從一個字符數組,因爲我不會談論害怕使這個帖子太長。我正在使用這個基本代碼:從char數組添加字符到char arraylist

for(char ch: c){ 
    this.age.add(ch); 
} 

其中c是數組,age是ArrayList。請記住,年齡沒有初始化,因此它是空的。我的問題是,爲什麼我編譯和運行時得到空指針異常?

+0

'this.age'爲空? 'c'中有元素嗎? –

+0

答案在這個問題上。 age沒有初始化,因此它是空的,因此試圖調用它的方法會拋出一個NullPointerException異常。推論:爲了避免這種異常,需要在調用任何方法之前初始化年齡。 –

+0

是的。它從不初始化,因此爲空。 – comscis

回答

2

這可能是你沒有初始化age。初始化像,

List<Character> age = new ArrayList<Character>(); 

異常來,因爲你只是離開它像

List<Character> age; 

所以默認引用爲null。並調用它的方法就像

null.method() //NullPointerException 
+0

啊我明白了。它沒有被初始化而沒有結尾。謝謝! – comscis

+0

@comscis發生。樂意效勞。 –

3

你正在得到一個空指針,因爲年齡,Arraylist爲空。在添加元素之前,您需要初始化它。

List<Character> age = new ArrayList<Character>(); 
for(char ch: c){ 
    this.age.add(ch); 
} 

在for循環之前初始化age,如果在for循環中執行,則每次都會重新初始化並丟失數據。