尝试简单:如果我有像这样的城市图:
[柏林(边缘:伦敦,柏林)-下一个->伦敦(边缘:巴黎)-下一个->巴黎。
而且我有一种断开节点的方法,例如
disconnect(伦敦,巴黎);
我想测试(JUnit)断开连接是否成功。我的想法是:编写一个isStillConnected(London)方法,如果伦敦没有边列表,则返回false;如果边列表为null,则返回true。代码提示:
public boolean isStillConnected(ListItem<Node<City, Road>> berlin) {
boolean edgeExists = false;
if(berlin.key.edgesGoingToHere.key.whereEdgeGoesTo != null) {
edgeExists = true;
}
return edgeExists;
}
问题:如果边缘没有边缘(我正在请求),则存在NULLPOINTER,因为我想访问为null的“ whereEdgeGoesTo”。
edgesGoingToHere是边缘列表的头。其中EdgeGoesTo是边缘所指向的节点。
谢谢您的回答!
我不确定仅通过查看一小段代码就能理解您的对象结构,但假设if语句正在检查正确的值,以避免出现nullPointerException
,而不是读取列表中的值并比较它们是否为null并使用.size()
检查列表的大小,如果该值大于0,则返回true。