Size: a a a

2021 June 01

AL

Alexander Levin in Kotlin Start
Ну варианты разные. Если у них просто одна сигнатура - смысла мало, вы можете просто тогда передать туда, где они нужны функциональные типы:

fun foo(action: () -> Unit) = TODO()

foo(::doA)
foo(::doB)


Если же у них больше общего, чем сигнатуры, то есть SAM интерфейсы. Про них почитать тут: https://kotlinlang.org/docs/fun-interfaces.html

Создавать целые классы как место хранения одной функции? Ну, в среднем случае наверное не нужно.
источник

DA

Dr. Alan in Kotlin Start
Спасибо
источник

FG

Fuad Garayev in Kotlin Start
я чето не врубился)а зачем мне хранить результат?чтоб закенсилить потом вы имели ввиду?или для какой цели?
источник

TT

Turalllb Turalll in Kotlin Start
да или чтобы через какое-то время запросить результат. Ну это по ходу алгоритма будет понятно, нужно это или нет
источник

FG

Fuad Garayev in Kotlin Start
понятно
источник

FG

Fuad Garayev in Kotlin Start
че то не робит,легче джава треды юзать в этой ситуации наверно)
источник

TT

Turalllb Turalll in Kotlin Start
хаха)) я думаю просто не пользовались корутинами и поэтому не понятно, но может быть так что этот класс ждет именно поток и не может сам работать с корутинами.. Я просто не юзал этот класс, поэтому не подскажу. Лучше погугли как его. используют , мб есть примеры с корутинами
источник

FG

Fuad Garayev in Kotlin Start
та не,я просто пробнул AudioRecord заюзать с курутина и вышла лажа)не могу остановить что то)даже после кенсела джоба
источник

FG

Fuad Garayev in Kotlin Start
да,видимо придется почитать про корутины побольше
источник

Э

Эд in Kotlin Start
Переслано от Эд
Интересно, что IDEA не подчеркнула
источник

Э

Эд in Kotlin Start
вот тут всё ОК
источник

АМ

Артём Мельник... in Kotlin Start
А что метод findById делает?
источник

Э

Эд in Kotlin Start
источник

АМ

Артём Мельник... in Kotlin Start
Покажи его сигнатуру
источник

AL

Alexander Levin in Kotlin Start
Ну, в общем случае понятно почему, репозиторий наверное возвращает джавовый Optional<T>, в нём orElse в плане типа возвращает T. Поэтому скорее всего тип там T! (Platform type), который вы привели к non-nullable type.

На уровне типов наверное всё честно. На уровне IDE наверное можно просить выводить явно тип аргумента orElse
источник

АМ

Артём Мельник... in Kotlin Start
Ну вот и прочитайте
источник

АМ

Артём Мельник... in Kotlin Start
Он же вернёт тип какой-то, а условие orElse() просто не сработает походу
источник

Э

Эд in Kotlin Start
немного понятно, да
источник

АМ

Артём Мельник... in Kotlin Start
Хотя да, тут походу платформенные типы
источник

AL

Alexander Levin in Kotlin Start
Посмотрите моё сообщение, если вкратце - автор нормально удивлён, ибо ни компилятор, ни идея не ругнулись на код, который идейно очевидно неправильный.

@edgar_01234 а можете попробовать найти тикет для Идеи и если нету создать?

(Ну и да - вроде можно найти репозитории с более родными для Котлина типами)
источник