[英]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.