【发布时间】:2014-05-28 20:13:05
【问题描述】:
我正在开发一个程序,我从数据库中检索字符串并将其存储到字符串数组中。现在我将这个数组传递给另一个类中的方法。说字符串数组的长度是 10。现在我将检查一个字符的特定出现,我会做一些工作。现在我的问题是我能够将 db 中的值存储到字符串数组中。但是我遇到的问题是给出空指针异常。由于在另一个方法中读取字符串数组的循环读取最后一个索引数组。
程序:
这是我将 Db 值存储到数组中的地方。这些数组是全局声明。
while(rst.next())
{
allitems[i]=rst.getString("transitems");
alltuv[i]=rst.getString("tuv");
}
现在将此数组传递给同一类的方法。
Window2 n=new Window2();
n.calculateTWU(allitems,alltuv);
现在我将这个数组传递给不同类的另一个方法。
CalculateTWU ctw=new CalculateTWU();
String avalue=ctw.calctA(s1, s2,"A"); //s1 and s2 are the string arrays s1=allitems and s2=alltuv.
另一个类中的方法说B类
public String calctA(String[] a1,String[] a2,String indexstr)
{
for(int i=0;i<10;i++)
{
int is= a1[i].indexOf(indexstr);
if(is==-1)
{
}
else
{
valadd=Integer.parseInt(a2[i])+valadd;
}
}
return String.valueOf(valadd);
}
堆栈跟踪:
MNOETTAOHX // these are strings
BOCOPVBLEV
MIAISEUECV
MGUXPXPEDX
EQMWLRVKZG
MNFBFAXQNT
YZKDHMVSSA
java.lang.NullPointerException
at datasets.CalculateTWU.calctA(CalculateTWU.java:27)
at datasets.Window2.calculateTWU(Window2.java:205)
at datasets.Window2.jButton1ActionPerformed(Window2.java:146)
at datasets.Window2.access$000(Window2.java:20)
at datasets.Window2$1.actionPerformed(Window2.java:68)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
【问题讨论】:
-
请提供完整的代码,而不是部分代码。
-
最好也缩进,这样确实更容易推理。
-
代码有点大。所以这就是为什么发布它的一部分
-
使用 Netbeans 时很容易缩进:alt-shift-f
标签: java arrays string nullpointerexception