如何初始化此特定变量?

时间:2015-03-04 06:38:05

标签: java variables methods initialization boolean

所以我有这个方法:

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为真,我想返回路径。

2 个答案:

答案 0 :(得分:1)

您的代码存在重大缺陷。

path是一个方法局部变量。因此,除非将其作为参数传递,否则无法在其他方法中访问它。

因为在你的findPath方法中,你没有得到/通过path,所以返回路径实际上没什么意义。

您可以将path初始化为nullnew 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();
}