Articles of функция

Как сделать возвращаемый тип функции переопределения одного выражения для Unit?

Как вы переопределите функцию, возвращающую void или Unit , с помощью функции одного выражения , выражение которой возвращает некоторый тип Un Unit ? Например: interface Base { fun overrideMe(): Unit } class Derived: Base { override fun overrideMe() = runAsync { } }

Могу ли я иметь другой тип возврата в котлин?

Например, допустим, что я вызываю такую ​​функцию: val call1: String = myFunction() или val call2: Int = myFunction() Как я могу позволить моей функции решить, что возвращать в процессе вызова, а не самой функции? Каким должен быть тип возврата? Любые ? Ед. изм ? ? Я не знаю, ясно ли это, вот пример того, над […]

Kotlin – Как я могу получить доступ к моей новой функции расширения класса из другого файла

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

Есть ли способ показать все функции расширения данного класса Kotlin в Intellij IDE?

Единственный способ, который я нашел до сих пор, – создать экземпляр данного класса, а затем использовать автозаполнение, чтобы увидеть все возможные функции. Очевидно, что этот способ громоздкий и занимает слишком много времени. Есть ли более простой способ увидеть все возможные функции?

убедитесь, что метод kotlin является статическим, верхним или аннотированным @JvmStatic

Как объявить main как статический, чтобы метод выполнялся как ниже (интерактивный): thufir@dur:~/kotlin$ thufir@dur:~/kotlin$ kotlinc Welcome to Kotlin version 1.1.51 (JRE 9.0.0.15+181) Type :help for help, :quit for quit >>> >>> println("hello world"); WARNING: An illegal reflective access operation has occurred WARNING: Illegal reflective access by com.intellij.util.text.StringFactory to constructor java.lang.String(char[],boolean) WARNING: Please consider reporting this to […]

Как получить доступ к членам класса с таким же именем в функции расширения в Kotlin android

Я новичок в kotlin для Android. и я хочу получить доступ к члену класса, который имеет такое же имя в функции расширения. например: var visibility = null //class level variable //EXTENSION FUNCTION fun ProgressBar.changeVisibleState(flag: Boolean) { if (flag) visibility = View.VISIBLE else visibility = View.INVISIBLE } как я могу получить доступ к visibility в методе […]

Доступ к статической функции расширения из другого класса в Котлине?

Допустим, у нас есть следующая функция расширения: class Helper { companion object { fun Int.plus(value: String) = Integer.valueOf(value).plus(this) } } Как вы можете получить доступ к функции расширения plus из класса Helper в другом классе. Есть ли способ, которым мы можем сделать что-то вроде этого, например: class OtherClass { fun someMethod() { val eight = […]

Объяснить эту структуру функций Котлина

Я работаю с этой функцией Kotlin. Я знаю, что у нас есть функция mPasswordView!!.setOnEditorActionListener , которая принимает параметр TextView.OnEditorActionListener , но что это после него? у нас есть фигурные скобки внутри параметра? mPasswordView!!.setOnEditorActionListener(TextView.OnEditorActionListener { textView, id, keyEvent -> if (id == R.id.login || id == EditorInfo.IME_NULL) { attemptLogin() return@OnEditorActionListener true } false })

Kotlin: Общая функция как возвращаемый тип?

В Котлине можно объявить общий тип функции как возвращаемый тип функции? То, что я хочу достичь, будет выглядеть так на Java: interface Factory { static Factory INSTANCE = new FactoryImpl(); <T> T create(String name, Class<T> type); } class PrefixedFactory implements Factory { private final String prefix; PrefixedFactory(String prefix) { this.prefix = prefix; } @Override public […]

Настройка привязок Guice в Котлине

Я хочу настроить привязки Guice, поэтому я создал модуль на Java, который отлично работает: public class CrashLoggerModule extends AbstractModule { @Override public void configure() { bind(CrashLogger.class).to(ConcreteCrashLogger.class); } } Затем я преобразовал этот код в Kotlin: public class CrashLoggerModule : AbstractModule() { override fun configure() { bind(javaClass<CrashLogger>()).to(javaClass<ConcreteCrashLogger>()) } } К сожалению, версия Kotlin этого класса больше […]