我想添加一個字符到一個字符數組的字符從一個字符數組,因爲我不會談論害怕使這個帖子太長。我正在使用這個基本代碼:從char數組添加字符到char arraylist
for(char ch: c){
this.age.add(ch);
}
其中c是數組,age是ArrayList。請記住,年齡沒有初始化,因此它是空的。我的問題是,爲什麼我編譯和運行時得到空指針異常?
我想添加一個字符到一個字符數組的字符從一個字符數組,因爲我不會談論害怕使這個帖子太長。我正在使用這個基本代碼:從char數組添加字符到char arraylist
for(char ch: c){
this.age.add(ch);
}
其中c是數組,age是ArrayList。請記住,年齡沒有初始化,因此它是空的。我的問題是,爲什麼我編譯和運行時得到空指針異常?
這可能是你沒有初始化age
。初始化像,
List<Character> age = new ArrayList<Character>();
異常來,因爲你只是離開它像
List<Character> age;
所以默認引用爲null。並調用它的方法就像
null.method() //NullPointerException
啊我明白了。它沒有被初始化而沒有結尾。謝謝! – comscis
@comscis發生。樂意效勞。 –
你正在得到一個空指針,因爲年齡,Arraylist爲空。在添加元素之前,您需要初始化它。
List<Character> age = new ArrayList<Character>();
for(char ch: c){
this.age.add(ch);
}
在for循環之前初始化age,如果在for循環中執行,則每次都會重新初始化並丟失數據。
'this.age'爲空? 'c'中有元素嗎? –
答案在這個問題上。 age沒有初始化,因此它是空的,因此試圖調用它的方法會拋出一個NullPointerException異常。推論:爲了避免這種異常,需要在調用任何方法之前初始化年齡。 –
是的。它從不初始化,因此爲空。 – comscis