![](/img/trans.png)
[英]How do I fix my java.lang.NullPointerException (android)?
[英]I am having a problem with pointers in java. How do I fix a java.lang.NullPointerException?
这是从Java的稀疏矩阵中获取元素的方法。 我不断收到java.lang.NullPointerException
错误。 我查看了代码,找不到错误。
public int getElement(int row,int col){
int result = 0;
MatrixEntry matrixentry = null;
if ((row >= 0) && (row < getNumRows()) &&
(col >= 0) && (col < getNumCols())) {
if (col == colArray[col].getColumn() && row ==rowArray[row].getRow()){
matrixentry = rowArray[row];
while (matrixentry.getColumn() < col) {
matrixentry = matrixentry.getNextColumn();
} // end while
if (matrixentry.getColumn() > col){
return 0;
}
if (matrixentry == null){
return 0;
}//
result = matrixentry.getData();
}//
}//
return result;
} // end
在while循环中使用.getColumn()
并调用.getColumn()
和.getNextColumn()
后,请检查matrixentry
是否为null
。
我想如果您先检查一下,代码会更好:
matrixentry = rowArray[row];
while (null != maxtrixentry && matrixentry.getColumn() < col) {
matrixentry = matrixentry.getNextColumn();
}
if (null == maxtrixentry || matrixentry.getColumn() > col){
return 0;
}
result = matrixentry.getData();
您的rowAarray和colArray是否正确初始化?
根据您的评论,它们不是。
您的代码难以阅读,并且检查结果不一致
if (matrixentry.getColumn() > col) {
return 0;
}
if (matrixentry == null){
return 0;
}
您在对象上调用method,然后仅将其检查为null。
如果您打算用编程来束缚自己的生活,而这不仅是一项家庭作业,我建议您将代码表示和表现力视为您的参观证。
您需要预先初始化数组元素。 基本的Sun Java Arrays教程对此进行了介绍 。 您最终可以使用Arrays#fill()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.