Articles of builder

Как реализовать проверенный конструктор в Котлине?

Я внедряю vars в Kotlin, которые могут получать внеочередные данные от некоторых своих пользователей. Я хотел бы иметь возможность по выбору (только на входе от этих ненадежных пользователей) конструктор проверки, который может вернуть значение null, а затем использовать оператор Elvis для указания значений по умолчанию в случае недопустимого ввода, например: var myFoo = Foo.fromInt(i) ?: […]

Как построить шаблон строителя вокруг компонентов JavaFX в Котлине

Я пытаюсь придумать шаблон построения в Kotlin для компонентов javafx. Шаблон будет выглядеть ниже fun main(args: Array<String>) { val vb = vbox { child { hbox { child { label { prefWidth = 20.0 } button { text = "Click" } } } label { prefHeight = 80.0 } } } } То, что я […]

Пояснение к литералу функции с приемником в Котлине

Я прочитал эту ссылку https://kotlin.link/articles/DSL-builder-in-Kotlin.html, чтобы понять реализацию строителя в Котлине. Я не понял методы внутри класса Builder. name() метода name() принимает функцию расширения как аргумент, который ничего не получает и возвращает строку. А вызывающий абонент называет name { "ABC" } . Если вызывающий объект передает метод String для name , как он преобразуется в […]

В Kotlin, как мне добавить методы расширения в другой класс, но только видимый в определенном контексте?

В Kotlin я хочу добавить методы расширения в класс, например, в класс Entity . Но я хочу видеть только эти расширения, когда Entity находится внутри транзакции, иначе скрыта. Например, если я определяю эти классы и расширения: interface Entity {} fun Entity.save() {} fun Entity.delete() {} class Transaction { fun start() {} fun commit() {} fun […]