Articles of lambda

Лямбда-функции с подстановочными знаками в Котлине

Я смотрел примеры, представленные Google, и наткнулся на эту строку private final ArrayMap<Class, Callable<? extends ViewModel>> creators; Мне трудно понять, как преобразовать этот Callable<? extends ViewModel> Callable<? extends ViewModel> в лямбда в Котлине Как мне это сделать? РЕДАКТИРОВАТЬ: class ViewModelFactory(appComponent: AppComponent) : ViewModelProvider.Factory { private val creators: ArrayMap<Class<*>, () -> ViewModel> = ArrayMap() init { […]

Получил NoClassDefFoundError при прохождении карты лямбда

Я создаю приложение для Android, используя Kotlin, и есть что-то странное с лямбдой. Я mapOf(1 to {…}, 2 to {…}) и получаю NoClassDefFoundError или ClassNotFoundException . Я пытаюсь переписать его на рабочем столе и получить то же самое, но с другой трассировкой стека. fun main(args: Array<String>) { call(mapOf( 1 to { "asd" }, 2 to […]

Точное определение «функционального интерфейса» в Java 8

Недавно я начал изучать Java 8, и я не могу полностью понять концепцию «функционального интерфейса», которая необходима для реализации ямбда-выражений Java. В Java есть довольно подробное руководство по лямбда-функциям, но я застрял в главе, которая дает определение концепции функциональных интерфейсов . Определение гласит: Точнее, функциональный интерфейс определяется как любой интерфейс, который имеет ровно один абстрактный […]

Java Лямбда в Котлин

Я строю свой код с Котлином. Я наткнулся на проблему с использованием Lambda в Котлине со следующим: Код Java: ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(builder -> builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true)); Использование общей реализации интерфейса ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers(new UndertowBuilderCustomizer() { @Override public void customize(Builder builder) { builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true); } }); Мой код в Котлине val c: UndertowEmbeddedServletContainerFactory = (container as UndertowEmbeddedServletContainerFactory) […]

Kotlin vs. Java: функция вызова с параметром лямбда

У меня есть эта функция, определенная в файле kotlin fun loadSubmissions(projectId: Long?, completion: (List<Submission>, Exception) -> Unit) { … } И хотите назвать это с Java, как это loadSubmissions(project.getProjectId(), (submissions, e) -> { updateSubmissions(submissions); return null; }); с void updateSubmissions(List<Submission> submissionList) { .. } Но это дает мне Error:(226, 35) error: incompatible types: List<CAP#1> cannot […]

Сценарий тестового сценария с колллинским обратным вызовом лямбда

Допустим, у нас есть следующая функция для тестирования fun loadData(dataId: Long, completion: (JsonElement?, Exception?) -> Unit { underlayingApi.post(url = "some/rest/url", completion = { rawResult, exception -> val processedResult = processJson(rawResult) completion(processedResult, exception) }) } Мне ясно, как насмехаться, вводить, заглушать и проверять звонки в underlayingApi . Мой вопрос: как код должен выглядеть так, чтобы проверить […]

Функции Высокого порядка Котлина в проекте Java

У меня есть функция, которая имеет тип функции как формальный параметр: fun doSomething(code: () -> Boolean) = false //package function in TestKt.class Я пробовал называть его на Java, проходя в лямбда: //Java class, in Java project class Demo { public static void main(String[] args) { TestKt.doSomething(() -> 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 […]

Mocktito ArgumentCaptor для лямбда Котлин с аргументами

Я пытаюсь проверить это на Котлине: verify(myInterface).doSomething(argumentCaptor.capture()) capture.value.invoke(0L) Где doSomething: doSomething((Long) -> Unit) Как я могу создать ArgumentCaptor для этого? Прямо сейчас я делаю это inline fun <reified T : Any> argumentCaptor() = ArgumentCaptor.forClass(T::class.java)!! val captor = argumentCaptor<(Long) -> Unit>() verify(mainApiInterface!!).downloadUserProfilePicture(captor.capture()) captor.value.invoke(0L) Но я получаю java.lang.IllegalStateException: captor.capture () не должно быть null Я также попытался […]

Kotlin лямбда с интерфейсом как аргумент

Я немного сбился с толку в ягодицах Koltin, и я хотел знать, как его использовать, учитывая следующий фрагмент кода: interface KotlinInterface { fun doStuff(str: String): String } И функция, которая требует, чтобы этот интерфейс передавался как параметр: fun kotlinInterfaceAsArgument(kotlinInterface: KotlinInterface): String{ return kotlinInterface.doStuff("This was passed to Kotlin Interface method") } fun main(args: Array<String>){ val newString […]

Intereting Posts
Kotlin Передача ListArray в другую активность с использованием Parcelable Как создать неизменяемый список, который должен пересекать поле другого списка Как мне выполнить «перерыв» или «продолжить», когда в функциональном цикле внутри Котлина? Диффузия и мультивыбор Как переопределить метод setter в котлин? Запуск HTML-редактора Kotlin в браузере Как заменить все вхождения подстроки в котлин Есть ли такой синтаксис, как #region #endregion в Котлине? Как отключить «Конвертировать Java в Kotlin при вставке» в IntelliJ IDEA? Почему @Primary иногда не работает для классов Kotlin? Интервал Рабочего Планировщика называется слишком нерегулярным Anko DSL пересматривает странное поведение при добавлении элементов Kotlin – lateinit TestRestTemplate не инициализирует интеграционные тесты Создание верхнего меню навигации Почему Kotlin позволяет иметь два класса с одинаковым именем и пакетом в разных папках (например, main и androidTest)?