我遇到java的NullPointerException问题。我的函数获取Vertex的数字并返回一个Vertex(我已经有了这样的类)。这是我的代码
public class Graph {
private Set<Vertex> vertices;
public Vertex getVertexByNumber(int number) {
Vertex answer = new Vertex(number);
for( Vertex v : vertices ) {
if(v.getNumber() == number) {
answer = v;
break;
}
}
answer = null;
return answer;
}
答案 0 :(得分:6)
为什么answer = null;
?
由于此语句方法,getVertexByNumber
将始终返回null
。
答案 1 :(得分:1)
我真的不明白你想要做什么。但是如果你希望你的函数在没有number
值的顶点时创建一个新的顶点,你可以写:
public Vertex getVertexByNumber(int number) {
Vertex answer;
for (Vertex v : vertices) {
if (v.getNumber() == number) {
answer = v;
break;
}
}
return answer == null ? new Vertex(number) : answer;
}
你也可以写
public Vertex getVertexByNumber(int number) {
for (Vertex v : vertices) {
if (v.getNumber() == number) {
return v;
}
}
return new Vertex(number);
}
否则,无需为answer
提供初始值,您只需要声明它:
public Vertex getVertexByNumber(int number) {
Vertex answer;
for (Vertex v : vertices) {
if (v.getNumber() == number) {
answer = v;
break;
}
}
return answer;
}
或
public Vertex getVertexByNumber(int number) {
for (Vertex v : vertices) {
if (v.getNumber() == number) {
return v;
}
}
return null;
}