Discussion:
[問題] 關於NullPointerException
(时间太久无法回复)
ldg
2007-03-25 04:02:07 UTC
Permalink
小弟看過了這討論串

【板主:PsMonkey/ogamenewbie】[Java] 標題請勿含「新手」字樣 文摘《java》
[←]離開 [→]閱讀 [^P]發表文章 [b]備忘錄 [d]刪除 [z]精華區 [TAB]文摘 [h]說明
 編號 日 期 作 者 文 章 標 題 人氣:10 
1   4/03 javabug □ [問題]NullPointerException
2   4/03 LPH66 R: [問題]NullPointerException
● 3   4/03 adrianshum. R: [問題]NullPointerException

歸納出這樣的結論:

就是要開一個reference variable陣列

一定要開多少用多少

例如需要n個reference variable

不可以貪圖coding辨識方便

而這樣設定reference[] array=new reference[n+1];

請問這樣是正確嗎?

回個文跟小弟說說吧

因為已經被這訊息搞了整晚 Orz

還有想請教一下

為了解決這問題

C語言有malloc;

請問JAVA的method名稱是?

非常謝謝

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.192.211.79
※ 編輯: ldg 來自: 210.192.211.79 (03/25 12:02)
骨頭
2007-03-25 10:18:46 UTC
Permalink
※ 引述《ldg (ldg)》之銘言:
: 歸納出這樣的結論:
: 就是要開一個reference variable陣列
: 一定要開多少用多少
: 例如需要n個reference variable
: 不可以貪圖coding辨識方便
: 而這樣設定reference[] array=new reference[n+1];
: 讓index從1到n
: 請問這樣是正確嗎?
: 回個文跟小弟說說吧
: 因為已經被這訊息搞了整晚 Orz


nullPointerException的用意
是要你在存取的時候,一定要先初始化過那個元素。(基本資料型態除外。)


比方說今天是 int[] k=new int[100];
k[1]=5 ; //沒問題 因為int會給定初值0

但是今天如果是


class Person{
int age;
Person(){
age=0;
}
Person(int k){
age=k;
}
public int getAge(){
return age;
}
public void setAge(int k){
age=k;
}
}


Person[] k=new Person[100];

k[2]=new Person(); //初始化 k[2]
k[2].setAge(5); //ok! 因為k[2]已被初始化

k[1].setAge(5); // error: k[1]尚未被初始化 處於null狀態,
會產生nullPointerException。


--
I am a person, and I am always thinking .
Thinking in love , Thinking in life ,
Thinking in why , Thinking in worth.
I can't believe any of what ,
I am just thinking then thinking ,
but worst of all , most of mine is thinking not actioning...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.134.27.68

Loading...