2011-04-04 87 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