Необязательно возвращает нулевое значениеJAVA

Программисты JAVA общаются здесь
Anonymous
Необязательно возвращает нулевое значение

Сообщение Anonymous »

Проблема, с которой я столкнулся, заключается в том, что при возврате необязательного значения я получаю нулевое значение. Поскольку я думал, что цель необязательного типа — избегать нулевых значений, я теперь немного запутался.
Это мой код:PlayerController.java

Код: Выделить всё

    @GetMapping("/{id}")
public Optional
 getPlayer(@PathVariable Long id) {
return playerService.getPlayerById(id);
}
PlayerService.java

Код: Выделить всё

public interface PlayerService {

List
 getAllPlayers();
Optional getPlayerById(Long id);
}
PlayerServiceImpl.java

Код: Выделить всё

    @Override
public Optional
 getPlayerById(Long id) {
return playerRepository.findById(id);
}
Когда я тестирую это с помощью Postman, для игроков, идентификатор которых действительно существует, я получаю объект игрока, но если я помещаю несуществующий идентификатор, я получаю ноль
Изображение

Я затем попробовал проверить, имеет ли объект игрока значение null, чтобы вернуть какое-то сообщение, например:

Код: Выделить всё

    @Override
public Optional
 getPlayerById(Long id) {
Optional player = playerRepository.findById(id);
if (player == null) { // warning
//some message
;
}
Но когда я написал оператор if, я получил предупреждение. Условие 'player == null' всегда имеет значение «false».
Если предупреждение истинно, как мне получить ноль от Почтальона?


Подробнее здесь: https://stackoverflow.com/questions/788 ... null-value

Вернуться в «JAVA»