Size: a a a

2020 November 10

D

Dima in pro.jvm
Andrey Kuleshov
Ха, я выиграл
ну тогда котлин вэй и опшионал джавовый забыть
источник

A

Alex in pro.jvm
Andrey Kuleshov
Ты же все равно игнорируешь ответы, так что могу и на скале написать пример
Почему игнорирую? Я читаю всё. Просто без примера не совсем понятно
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Почему игнорирую? Я читаю всё. Просто без примера не совсем понятно
Я же написал пример
источник

AK

Andrey Kuleshov in pro.jvm
Andrey Kuleshov
a?: {println; return }
Млять, кусок кода
источник

AK

Andrey Kuleshov in pro.jvm
))
источник

AK

Andrey Kuleshov in pro.jvm
Неужели не помогает?) 😂
источник

A

Alex in pro.jvm
Andrey Kuleshov
Я же написал пример
Он не совсем подходит к вопросу. Вы показали одну конструкцию
источник

A

Alex in pro.jvm
Dima
.get(), .orElse(null) <- грех
Я поэтому и спрашиваю здесь, как лучше
источник

AK

Andrey Kuleshov in pro.jvm
Andrey Kuleshov
a?: {println; return }
val vehicle = vehicleNumberService.findByNumberLike(vehicleName)?: {
           log.debug("ТС с номером $vehicleName не найдено.")
           return
       }
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Он не совсем подходит к вопросу. Вы показали одну конструкцию
Так легче?))
источник

A

Alex in pro.jvm
Andrey Kuleshov
val vehicle = vehicleNumberService.findByNumberLike(vehicleName)?: {
           log.debug("ТС с номером $vehicleName не найдено.")
           return
       }
Так сервис возвращает optional же
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Так сервис возвращает optional же
Я поменял два символа.
А если vechicleNumberService
нулабл или опшионал, то

vechicleNumberService.get()?:
источник

A

Alex in pro.jvm
Если вернётся Optional.empty() то при вызове .get() будет исключение
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Если вернётся Optional.empty() то при вызове .get() будет исключение
Ох уж эта джава в Котлин.
Конечно же вместо .get костыль - .orElse(null)

Опечатался по привычке
источник

AK

Andrey Kuleshov in pro.jvm
Andrey Kuleshov
val vehicle = vehicleNumberService.findByNumberLike(vehicleName)?: {
           log.debug("ТС с номером $vehicleName не найдено.")
           return
       }
И оттуда уже оператор элвиса
источник

A

Alex in pro.jvm
Угу... Тут во предлагают уйти просто от optional
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Угу... Тут во предлагают уйти просто от optional
Правильно абсолютно
источник

AK

Andrey Kuleshov in pro.jvm
Но ещё хуже, если использовать optional, потом брать orElse(null), а потом ещё втупую на Котлин проверять if (value == null)
источник

AK

Andrey Kuleshov in pro.jvm
Для этого есть ?:
источник

AK

Andrey Kuleshov in pro.jvm
Alex
Ой. Сорян. Самое главное. Нужно еще вывести в лог сообщение. Поэтому конечно конструкция ?: не подходит
Про это и был вопрос изначально по всей видимости. Но видимо, не было понятно, что нужно писать фигурные скобки, чтобы это все заработало.

К слову return внутри оператора элвиса вернёт из метода. (На всякий случай говорю)
источник