Size: a a a

2019 October 24

D

Denys in Kotlin Start
Aleksandr
Чем является get()?
Любая suspend функция, которая знает где взять нужное значение MainClass.
источник

D

Denys in Kotlin Start
Вероятно, я не совсем ответил на ваш вопрос. Не могли бы привести пример из реальной жизни где это планируете использовать?
источник

A

Aleksandr in Kotlin Start
Denys
Вероятно, я не совсем ответил на ваш вопрос. Не могли бы привести пример из реальной жизни где это планируете использовать?
источник

RI

Ruslan Ibragimov in Kotlin Start
interface Main {
   suspend fun doWork(arg: String): String
}

class ProxyMain : Main {
   private val mutex = Mutex(true)
   private var main: Main by notNull()

   suspend fun setInitial(newMain: Main) {
       main = newMain
       mutex.unlock()
   }

   suspend fun setNext(newMain: Main) {
       mutex.withLock {
           main = newMain
       }
   }

   override suspend fun doWork(arg: String): String {
       return mutex.withLock {
           main.doWork(arg)
       }
   }
}
источник

RI

Ruslan Ibragimov in Kotlin Start
Все вызовы doWork заснут ожидая анлока, после того значение в main будет передано, произойдет unlock и все кто ожидал его получат значение. Апдейт через тот же mutex, но отдельный метод. Если добавить еще одно поле, можно будет избавиться от лишнего метода.
источник

A

Aleksandr in Kotlin Start
Ruslan Ibragimov
interface Main {
   suspend fun doWork(arg: String): String
}

class ProxyMain : Main {
   private val mutex = Mutex(true)
   private var main: Main by notNull()

   suspend fun setInitial(newMain: Main) {
       main = newMain
       mutex.unlock()
   }

   suspend fun setNext(newMain: Main) {
       mutex.withLock {
           main = newMain
       }
   }

   override suspend fun doWork(arg: String): String {
       return mutex.withLock {
           main.doWork(arg)
       }
   }
}
Спасибо большое. Проверил и это то, что нужно. Поток как я понял не блокируется. Что за поле вы предлагаете добавить?
источник

AR

Andrei Ruban in Kotlin Start
Всем привет! Ребята, как решается проблема если jackson игнорит поле при десереализации в дата класс ? есть вобщем non-nullable boolean поле и jackson его игнорит
источник

AR

Andrei Ruban in Kotlin Start
либо выводит постоянно дефолт значение, если нет дефолтного то ошибка not null parameter is null
источник

AL

Alexander Levin in Kotlin Start
Andrei Ruban
либо выводит постоянно дефолт значение, если нет дефолтного то ошибка not null parameter is null
А как поле например называется?
источник

AR

Andrei Ruban in Kotlin Start
@JsonProperty("is_pre_approved")
val isPreApproved: Boolean = true
источник

AL

Alexander Levin in Kotlin Start
Andrei Ruban
@JsonProperty("is_pre_approved")
val isPreApproved: Boolean = true
Могу ошибаться, это не эта проблема?
https://github.com/FasterXML/jackson-module-kotlin/issues/52
источник

AL

Alexander Levin in Kotlin Start
Если она, то поможет явно прописать, что аннотация для геттера
источник

AR

Andrei Ruban in Kotlin Start
с аннотацией или без аннотации проблема та же
источник

RI

Ruslan Ibragimov in Kotlin Start
Boolean же тут примитив, конечно туда нельзя null просетать
источник

RI

Ruslan Ibragimov in Kotlin Start
Попробуй @field:JsonProperty("is_pre_approved")
источник

AR

Andrei Ruban in Kotlin Start
заработало вот так
@get:JsonProperty("is_pre_approved")
val isPreApproved: Boolean = true
источник

AR

Andrei Ruban in Kotlin Start
спасибо большое
источник

AL

Alexander Levin in Kotlin Start
Там просто разные проблемы для булевых пропертей с префиксом is:
https://github.com/FasterXML/jackson-module-kotlin/issues/80
источник

AL

Alexander Levin in Kotlin Start
Т.е. альтернативное решение - убрать префикс, насколько я помню. Для пропертей это даже имеет смысл в какой-то степени.
источник

AR

Andrei Ruban in Kotlin Start
Alexander Levin
Т.е. альтернативное решение - убрать префикс, насколько я помню. Для пропертей это даже имеет смысл в какой-то степени.
тоже хорошая идея) спасибо
источник