Articles of котлина

Альтернатива перегрузкам функций

Код ниже fun getValue(): Int { return 42 } fun getValue(): String { return "Foo" } дает следующую ошибку: Конфликтные перегрузки : локальное конечное удовольствие getValue (): Строка, определенная в главном, локальном финальном весе getValue (): Int определена в основном. Есть ли способ обойти это без переименования одной из функций?

что эквивалентно этому котлинскому коду java

Ниже приведен код kotlin, который печатает время выполнения любого оператора или блока операторов: fun exeTime(code: () -> Unit) { var start = System.currentTimeMillis() code() var end = System.currentTimeMillis() – start println("Execution time: " + end + "ms") } Его можно использовать следующим образом: exeTime { // some code // … } Какова эквивалентная конструкция Java […]

Как сделать локальный метод расширения доступным в функции с приемником?

Я нашел интересную вещь, но я не мог этого сделать. Есть ли способ сделать локальный метод расширения доступным в функции с приемником. val list = ArrayList<Any>(); fun <T> Array<T>.bind(context: MutableList<in T>, block: Array<T>.() -> Unit) { fun Array<T>.save() { context.addAll(this); } block(); } arrayOf(1, 2, 3).bind(list) { save(); //todo: how to bind extension in execution […]

Главная Ui Freezes

Я пытаюсь пометить камеру с разной скоростью. поэтому для этого я использую seekbar для изменения скорости мигания. Когда я сначала меняю значение поиска, он начинает мигать private fun startFlashLightBlink(context: Context,blinkSpeed: Int) { isBlinkFlashLight=true flashLightBlinkThread = Thread{ Looper.prepare() while (isBlinkFlashLight){ val blinkInterval:Long=blinkSpeed*100L //getMainLooper() handler is associated "with the Looper for the current thread" … which is […]

Строчная интерполяция для двойного числа в Котлине

Как использовать интерполяцию строк для двойника с двумя числами после периода в Котлине? Например val d = 3.54213 println("d = $d") получится d = 3.54213 . Я хочу получить d = 3.54 . Спасибо.

Чтение вывода от exec kotlin

Мне нужно выполнить файл jar и перенаправить вывод из моего выполненного процесса на вывод моего основного процесса. Я использую следующий код: val command = "java.exe -version" val p = Runtime.getRuntime().exec(command) val buf = p.getInputStream() val inputAsString = buf.bufferedReader().use { it.readText() } println(inputAsString) У меня нет выхода … Я тестировал этот код: val command = "cmd […]

Обнаруживать конфликты просмотров и предотвращать перенасыщение

В то время как я работаю над играми-головоломкой с использованием инфраструктуры андроида Kotlin, я застрял в точке, когда не могу понять, как я могу предотвратить совпадение изображений с другими при перемещении, я пробовал много решений, размещенных на intenet, но ничего не сработало, если кто-нибудь может показать мне, как предотвратить их совпадение или показать мне правильный […]

Как правильно показать прогресс асинхронных задач, используемых Google Room

Я использую Google Room для реализации сохранения данных в своем приложении для Android (код Котлина). Комната требует, чтобы все операции (запросы в базу данных и из базы данных) были асинхронными. Я хотел бы, чтобы пользователь дождался выполнения операции, не позволяя ему взаимодействовать с компонентами, которые не были бы настроены должным образом до конца запроса. Как […]

Как передать контекст Неявно для конструкторов в Котлине

Я пытаюсь создать конструкцию экземпляров класса в зависимости от области, в которой они определены, без использования явных параметров. Это часть порта от Python до Kotlin, но основная идея будет примерно такой: var d = MyClass() use_scope(contextAForScope) { var a = MyClass() use_scope(contextBForScope) { var b=MyClass() } } В этом примере d конструктор будет использовать контекст […]

Котлин: Путаница с лямбдами и дженериками

См. Сообщения об ошибках в комментариях: interface Printable {} class Book(val title: String) :Printable fun bookPrint(b: Book?):String = "Title: " + b?.title class Author(val name: String) :Printable fun authorPrint(a: Author?):String = "Name: " + a?.name // Unsupported: [modifier on parameter in function type] // ————-vv fun printIt(f: (in Printable?) -> String, a:Printable):String { return "Unknown: […]