Необязательно возвращает нулевое значение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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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