Articles of kotlin extension

Почему нулевые числа не сохраняют идентификатор

В kotlin значения nullable не сохраняют тождество, но равенство, val a: Int = 10000 val boxedA: Int? = a val anotherBoxedA: Int? = a print(boxedA === anotherBoxedA) // !!!Prints 'false'!!! print(boxedA == anotherBoxedA) // Prints 'true' Я просто хотел узнать, почему это другое?

Могу ли я отправить функцию расширения через параметр функции

У меня есть функция расширения функций ниже. fun EditText.setEmailValidationListener(): TextWatcher { val textWatcher = object : TextWatcher { override fun beforeTextChanged(text: CharSequence?, start: Int, count: Int, after: Int) { } override fun onTextChanged(text: CharSequence?, start: Int, before: Int, count: Int) { } override fun afterTextChanged(text: Editable?) { validateEmail() } private fun validateEmail(): Boolean { if […]

Требуется <Объект> и найден <Объект>?

class TaskRepo(taskData: TaskData) { companion object { private val repoByTask: LRUMap<String, OrderFormRepo> = LRUMap(2, 10); fun getInstance(taskData: TaskData): OrderFormRepo { if (notFoundObject(taskData.taskId)) { repoByTask[taskData.taskId] = OrderFormRepo(taskData); } return repoByTask[taskData.taskId];//PROBLEM HERE } private fun notFoundObject(taskId: String): Boolean { if (repoByTask.containsKey(taskId) && repoByTask[taskId] != null) { return false } return true } } } в методе getInstance […]

Как создать функцию расширения в Kotlin, которая работает с классом?

Представьте, у меня есть эта строка кода: import org.mockito.Mockito val mock = Mockito.mock(Sim2ParametersProvider::class.java) Я хочу написать так: val mock = Sim2ParametersProvider::class.mock() Как мне это сделать? Я пытался fun <T : kotlin.Any> kotlin.reflect.KClass<T>.mock() = Mockito.mock(this) но это дает мне ошибки компилятора.

findViewById ClassCastExcpetion

Я использую плагин расширения kotlin для поиска представлений. Но теперь я получаю исключение setSupportActionBar(mainActivity_toolbar) Он работал до сих пор, но теперь он дает ClassCastException: android.widget.FrameLayout cannot be cast to android.support.v7.widget.Toolbar Последнее, что я делал, состояло в том, чтобы добавить id к моей фабрике и установить OnClickListener . Но в моем layout.xml: android.support.v7.widget.Toolbar имеет идентификатор "@+id/mainActivity_toolbar" […]

Член Kotlin и расширение одновременно

В попытке понять больше о Kotlin и поиграть с ним, я разрабатываю пример приложения для Android, где я могу попробовать разные вещи. Однако даже после поиска по теме на некоторое время я не смог найти правильный ответ на следующий вопрос: Давайте объявим функцию (фиктивный) расширение в классе View: fun View.isViewVisibility(v: Int): Boolean = visibility == […]

Булева функция расширения

Когда я пытаюсь создать функцию расширения, чтобы установить Boolean true или false, как показано ниже. Boolean.setTrue(){ this = true } Boolean.setFalse(){ this = false } Он говорит, что ожидается переменная . Как достичь этого.

Android kotlin переопределяет методы интерфейса внутри метода onCreateView ()

Я новичок в Котлине. У меня есть интерфейс, содержащий два определения метода: fun onSuccess(result: T) fun onFailure(e: Exception) Теперь в моем фрагменте я реализовал этот интерфейс и хочу использовать эти методы внутри: override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { ……………… ……………… override fun onSuccess(result: String) {} override fun onFailure(e: Exception) {} } […]

Свойство расширения с расширением Kotlin

Я знаю ключевое слово inline, чтобы избежать накладных вызовов вызова funtion. Но я не могу понять, для чего работает расширение? Пусть говорят, что у нас есть два свойства расширения с именем foo, а другое с inline named bar val Any.foo : Long get() = Date().time inline val Any.bar : Long get() = Date().time Выполняя любой […]

Как обратиться к анонимному внутреннему классу в Котлине?

У меня есть метод расширения. Как я могу ссылаться на OnGlobalLayoutListener который передается в метод addOnGLobalLayoutListener() ? Мне нужно передать слушателя removeOnGlobalLayoutListener() . fun View.OnGlobalLayout(callback:() -> Unit ): Unit{ this.viewTreeObserver.addOnGlobalLayoutListener { if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.JELLY_BEAN) { this.viewTreeObserver.removeOnGlobalLayoutListener(this); } else { this.viewTreeObserver.removeGlobalOnLayoutListener(this); } callback(); } }

Intereting Posts
Оператор сокращения Kotlin, похоже, не работает Соглашения об именах файлов для Kotlin Kotlin \ Java – Как получить сумму измененных элементов массива бросить, если оператор в Котлине Почему Kotlin позволяет иметь два класса с одинаковым именем и пакетом в разных папках (например, main и androidTest)? Мне нужно перезапустить IDE для запуска тестов Kotlin: Как я могу избежать автобоксинга (мусора) в делегированных свойствах? Does java.util.HashMap не реализует java.util.Map в Котлине? Инициализация val путем деструктуризации в Котлине Val не может переназначить ошибку времени компиляции для локальной переменной в fun в kotlin Kotlin RxJava Nullable Bug Встроенная функция не может получить доступ к непубличным API: @PublishedApi vs @Suppress vs @JvmSynthetic Как создать пустой конструктор для класса данных в Kotlin Android Kotlin Android View Binding: findViewById vs Butterknife vs Kotlin Android Extension Отладка встроенных функций Kotlin