如何解决遇到java.lang.NullPointerException
关于Java中的上述错误,我已经看到许多答案,但是大多数答案都在告诉错误是什么,我找不到纠正它的方法。
这是我的Java代码片段:
public static void optimalAlignmentScoreBU(String r,String s,int matchScore,int transition,int transversion,int indel) {
int m = r.length();
int n = s.length();
Node[][] strg = new Node[m + 1][n + 1];
// base cases
strg[m][n].val = 0;
}
在我写strg [m] [n] .val = 0的那一行出现错误。 我创建了一个Node类,如下所示:
// ELEMENT OF DP MATRIX IS OF TYPE NODE
public class Node {
int val;
ArrayList<Pair<Integer>> arrows = new ArrayList<Pair<Integer>>();
}
// PAIR CLASS
public static class Pair<T> {
T p1;
T p2;
public Pair(T p1,T p2) {
this.p1 = p1;
this.p2 = p2;
}
}
你能告诉我怎么了吗?为什么要指出NULL?我该怎么做才能纠正这个问题?
解决方法
您创建了一个空节点矩阵。
strg[m][n] = new Node();
strg[m][n].val = 0; // Now there is a Node,no longer NPE.
当然更好的是:
Node node = new Node();
node.val = 0;
strg[m][n] = node;
新节点实际上具有其val字段的地方已经为0。
当然必须创建所有矩阵节点。
在Java中:
int[] v = new int[10]; // All 0.
boolean[] v = new boolean[10]; // All false.
String[] v = new String[10]; // All null.
double[] v = new double[10]; // All 0.0.
,
strg
为空;其所有值均为null
。您需要创建一个new Node
。
在Java中创建非基本数组时,它还不包含任何实际对象-每个项目都是null
。
NPE是当您在空对象上调用方法时...使用调试器并查看其为空
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。