Articles of интерфейс

не случайное переопределение в Котлине

У меня есть интерфейс java public interface LifecycleRegistryOwner extends LifecycleOwner { @Override LifecycleRegistry getLifecycle(); } и класс Kotlin, который реализует этот интерфейс, было бы очень приятно иметь val lifecycle by lazy { val result = LifecycleRegistry(this) result } но компилятор говорит, что это случайное переопределение. есть ли способ сказать, что это было сделано намерением? моя […]

«Код в интерфейсах» Котлин, как они избегают «смертельного алмаза смерти»?

Я читал эту статью, и она говорит, что вы можете писать код в интерфейсах Kotlin. Java не разрешала писать код в интерфейсе, чтобы избежать проблемы с алмазом по сравнению с этим ответом . Если Kotlin позволяет использовать код в интерфейсе, а несколько интерфейсов могут быть реализованы в классе, разве это не создает проблему «Diamond Problem» […]

Типы соединений / интерфейсы расширения

У меня есть несколько data class с полями, которые используются в формах, и им нужно, чтобы метод возвращал true если какое-либо из полей было заполнено. Я не хочу переписывать это для всех классов, поэтому я делаю это так: data class Order(var consumer: String, var pdfs: List<URI>): Form { override val isEmpty(): Boolean get() = checkEmpty(consumer, […]

В Kotlin, как я могу обойти конфликты наследуемых объявлений, когда класс enum реализует интерфейс?

Я определяю класс перечисления, который реализует Neo4j RelationshipType : enum class MyRelationshipType : RelationshipType { // … } Я получаю следующую ошибку: Inherited platform declarations clash: The following declarations have the same JVM signature (name()Ljava/lang/String;): fun <get-name>(): String fun name(): String Я понимаю, что метод name() из класса Enum и метод name() из интерфейса RelationshipType […]

Внедрение интерфейса анонимно в Kotlin приводит к ошибке «не имеет конструкторов»

Я пытаюсь использовать SurfaceView в Android для предварительного просмотра камеры. Документация говорит мне, что мне нужно вызвать startPreview в обратном вызове surfaceCreated для держателя поверхности. Я пытаюсь установить обратный вызов так this.surface!!.holder!!.addCallback(SurfaceHolder.Callback() { fun surfaceChanged(holder: SurfaceHolder, format: Int, width: Int, height: Int) { } fun surfaceCreated(holder: SurfaceHolder) { } fun surfaceDestroyed(holder: SurfaceHolder) { } }) […]

Интерфейс Pass в качестве параметра в Kotlin

Я хочу передать интерфейс как параметр: class Test { fun main() { test({}) // how can I pass here? } fun test(handler: Handler) { // do something } interface Handler { fun onCompleted() } } В Java я могу использовать анонимную функцию типа test(new Handler() { ………. }) , но я не могу сделать это […]

Как создать экземпляр анонимного класса, который реализует интерфейс в Kotlin

В Java создать экземпляр объекта интерфейса так же просто, как new Interface() … и переопределить все необходимые функции, как показано ниже, в AnimationListener private void doingSomething(Context context) { Animation animation = AnimationUtils.loadAnimation(context, android.R.anim.fade_in); animation.setAnimationListener(new Animation.AnimationListener() { // All the other override functions }); } Однако в Котлине, когда мы печатаем private fun doingSomething(context: Context) { […]

Как создать анонимный интерфейс интерфейса?

У меня есть интерфейс: interface TileSet { fun contains(x: Int, y: Int) : Boolean } Я хочу иметь возможность создавать объединения наборов плиток (tile – пара целочисленных координат x и y): fun TileSet.union(another: TileSet) : TileSet = // .. В Java 8 я мог бы сделать это следующим образом: @FunctionalInterface public interface TileSet { boolean […]

Любой способ унаследовать один и тот же общий интерфейс дважды (с отдельными типами) в Котлин?

У меня есть сценарий в моем коде, где я хотел бы, чтобы класс реализовал интерфейс для двух отдельных типов, например, в этом примере: interface Speaker<T> { fun talk(value: T) } class Multilinguist : Speaker<String>, Speaker<Float> { override fun talk(value: String) { println("greetings") } override fun talk(value: Float) { // Do something fun like transmit it […]

Intereting Posts
Как установить атрибут веса динамически из кода Котлина? SupportfragmentManager становится null android kotlin Отражение Котлина + дженерики Kotlin vs. Java: функция вызова с параметром лямбда Как установить maxLength в Anko Ошибка библиотеки библиотеки Android: не удается найти установщик для поля. (Котлин) Наследование класса с помощью основного конструктора Делегирование недвижимости, измененное изменчивой картой Запрещено разрешение на использование Firebase Расширенное назначение и приращение не поддерживаются для локальных делегированных свойств и встроенных свойств Невозможно однозначно идентифицировать макет при добавлении вложенных фрагментов с помощью фрагментации «Lateinit» или «by lazy» при определении глобального android.widget var / val Изменить шаблон тестового файла Использование Mockito, Как мне отобразить класс Kotlin с декларацией поля интерфейса val? Kotlin Построить на travis-CI, но тесты не запускаются