2011-04-04 83 views
0

當我得到一個java.lang.NullPointerException當我運行下面的代碼:空指針異常實例化一個數組

import org.apache.axis.types.*; //to use UnsignedShort 

UnsignedShort a = new UnsignedShort(1); 
UnsignedShort b = new UnsignedShort(1); 
int c= 123; 

VARDATA[] data = new VARDATA[1]; 

data[0] = new VARDATA(); 
data[0].setUsType(a); 
data[0].setUsIndex(b); 
data[0].setUlValue(c); 
+1

你可以顯示堆棧跟蹤嗎? – trojanfoe 2011-04-04 08:04:42

+1

請添加棧跟蹤或從 – Bivas 2011-04-04 08:05:18

+1

拋出異常的確切位置請顯示*完整*代碼,而不僅僅是那些您*無法找到問題的行。 – 2011-04-04 08:10:17

回答

1

你從哪裏得到的NullPointerException?哪條線? Re VARDATA,我沒有看到它被導入,所以推測它是你正在運行的代碼的一部分。

爲了提高可讀性我寧願設置data第一要素明確,並然後其分配到數組引用,即是這樣的:

VARDATA[] data = new VARDATA[1]; 

VARDATA d = new VARDATA(); 
d.setUsType(a); 
d.setUsIndex(b); 
d.setUlValue(c); 

data[0] = d; 
// And so on ... 

...但是這取決於你。無論哪種方式,我認爲你需要發佈VARDATA,因爲我懷疑這是問題所在。

+0

Hello Ben,對你的代碼進行一些細微的修改就可以完美工作。 VARDATA data0 = new VARDATA(); data0.setUsType(varType); data0.setUsIndex(varIndex); data0.setUlValue(varValue); \t \t VARDATA [] data = {data0}; 當我定義VADATA [] data = new VARDATA [1];如果我分配數據[0] =某事,我得到錯誤,上面的修改版本做了訣竅。 謝謝... PS:我的評論出現在一條直線上,我如何格式化它們?這是我的第一篇文章。 – user690153 2011-04-04 08:22:34

+0

@ user690153 - 我們無法進行格式化的多行註釋,但可以將註釋的部分格式設置爲「代碼」 - 我通常會將這樣的信息追加到我原來的問題中。 – 2011-04-04 08:30:54

+0

@ user690153很高興聽到您對它進行排序。按照Andreas_D的說法重新評論,你只能在代碼中使用'字符來做內嵌代碼。 – Ben 2011-04-04 13:06:54