所以我有这个方法:
public MazeLocationList solve(){
boolean solved = true;
int startrow = x[0][0];
int startcol = x[0][0];
MazeLocationList path;
boolean S = findPath(startrow, startcol, 15, 20);
if (S == false){
solved = false;
return null;
} else {
return path;
}
}
我尝试做的是尝试检查方法findPath是返回true还是false,然后根据它是真还是假来返回不同的东西。问题是变量路径还没有被初始化,我不太清楚如何初始化它,因为如果方法findPath为真,我想返回路径。
答案 0 :(得分:1)
您的代码存在重大缺陷。
path
是一个方法局部变量。因此,除非将其作为参数传递,否则无法在其他方法中访问它。
因为在你的findPath
方法中,你没有得到/通过path
,所以返回路径实际上没什么意义。
您可以将path
初始化为null
或new MazeLocationList()
,但由于path
未被更改,因此不会有任何好处。
答案 1 :(得分:1)
您的变量路径根本不会获得任何值,因此无论它是否已初始化都无关紧要。
如果值永远不会改变,返回路径的想法是什么?
编辑:
如果您只想返回MazeLocationList
的实例,请执行
MazeLocationList path = new MazeLocationList();
或代替返回路径,返回一个实例:
return new MazeLocationList();
就像那样:
public MazeLocationList solve(){
boolean solved = true;
int startrow = x[0][0];
int startcol = x[0][0];
boolean foundPath = findPath(startrow, startcol, 15, 20);
if (!foundPath){
solved = false;
return null;
}
return new MazeLocationList();
}