Как мне инициализировать эту конкретную переменную?

1

Поэтому у меня есть этот метод:

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, а затем возвращает разные вещи в зависимости от того, является ли это true или false. Проблема в том, что путь переменной не был инициализирован, и я не совсем уверен, как его инициализировать, потому что я хочу вернуть путь, если метод findPath является истинным.

  • 0
    Путь MazeLocationList; это имеет какое-либо значение по умолчанию? или вам нужно где-то посчитать?
Теги:
methods
variables
initialization
boolean

2 ответа

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();
}
  • 0
    То, что я пытаюсь сделать, - это вернуть экземпляр MazeLocationList, однако я не совсем уверен, как это сделать.
  • 0
    Смотрите мое редактирование выше. Если вы просто хотите вернуть экземпляр, инициализируйте его новым экземпляром MazeLocationList или просто верните его в операторе if.
Показать ещё 2 комментария
1

В вашем коде есть главный недостаток.

path - это локальная переменная метода. Таким образом, он не может быть доступен другим методам, если он не передан в качестве аргумента.

Поскольку в вашем методе findPath вы не получаете/пропускаете path, возвращаемый путь на самом деле имеет мало смысла.

Вы можете инициализировать path до null или new MazeLocationList() но это не принесет пользы, поскольку path не изменяется.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню