Intereting Posts
Spring Data Neo4j 5's EntityScan содержит сопутствующие объекты при использовании Kotlin Список несоответствий типа Kotlin <Any> и List <Comparable <{com.cognitect.transit.Symbol & com.cognitect.transit.Keyword}>?> Доступ к типам параметров внешнего типа Android Studio 1.5 с плагином Kotlin получил исключение, когда он находится в режиме отладчика. Как это исправить? Kotlin, Java, multidex, Dagger 2, Butterknife and Realm: transformClassesWithJarMergingForDebug: дублирующаяся запись: org / jetbrains / annotations / NotNull.class Приложение не реализует dagger.android.HasDispatchingActivityInjector Левое соединение w / Spring Data и QueryDSL для сортировки результатов Прочитайте текстовый объект (текстовый файл из папки с данными) в виде строки в Kotlin (Android) Порядок вычисления побитовых операторов в Котлине Anko эквивалентно стилю attr в xml Javafx by kotlin поступил не так, когда я экспортирую его в runnable jar Что значит ?. означает в Котлине при использовании в левой части задания? Котлин «внутренний» модификатор видимости в Android GoogleApiClient: невозможно вручную подключиться и выполнить signOut впоследствии Почему я не могу получить доступ к переименованию суперкласса в Котлине?

LMAX Disruptor с Kotlin: нельзя использовать лямбда?

Например, в Java я могу сделать это с помощью LMAX disruptor:

Disruptor<NetworkEvent> disruptor = new Disruptor<>(NetworkEvent::new, 2048, Executors.newSingleThreadedExecutor());

В Котлин я пробую этот эквивалент:

val disruptor = Disruptor<NetworkEvent>({ NetworkEvent() }, 2048, Executors.newSingleThreadExecutor())

Но меня приветствует эта ошибка:

введите описание изображения здесь

Solutions Collecting From Web of "LMAX Disruptor с Kotlin: нельзя использовать лямбда?"

Прежде всего, вам не нужно указывать T, kotlin может это сделать.

Во-вторых, сообщение об ошибке говорит, что неправильно, Disruptor хочет EventFactory, но вы передаете ему простую лямбду.

Если вы хотите передать лямбда в качестве интерфейса SAM, иногда необходимо перевести лямбда с именем интерфейса.

Попробуйте следующее (непроверенное):

 val disruptor = Disruptor(EventFactory { NetworkEvent()}, 2048,....)