Articles of kotlin interop

Kotlin Неразрешенная ссылка: println от gradle на CLI

Полагая инструкцию println перед возвратом сбоев, функция kotlin. трассировки стека: thufir@dur:~/NetBeansProjects/kotlin$ thufir@dur:~/NetBeansProjects/kotlin$ gradle clean build –stacktrace w: Classpath entry points to a non-existent location: e: /home/thufir/NetBeansProjects/kotlin/src/main/kotlin/example.kt: (14, 5): Unresolved reference: println > Task :compileKotlin Using Kotlin incremental compilation FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':compileKotlin'. > Compilation […]

Как легко потреблять продюсера канала Kotlin на Java?

В рамках работы над разработкой нового API я изучаю использование Kotlin. Первоначально я хочу, чтобы API Kotlin использовался в проекте Java (Android), но в долгосрочной перспективе я надеюсь полностью принять Котлина. В рамках улучшения реализации долговременного процесса я хочу использовать сопрограммы. В частности, производитель канала из пакета kotlinx.courtines . Например: fun exampleProducer() = produce { […]

Вывод лямбда-типа Java не работает должным образом в Котлине

Почему эта часть кода Java не компилируется в Kotlin без явного параметра типа в Collectors.toList<String>() ? Есть ли более идиоматический способ сделать это? // works List<String> folders = Files.walk(Paths.get(args[0])) .filter(it -> it.toFile().isDirectory()) .map(it -> it.toAbsolutePath().toString()) .collect(Collectors.toList()); // does not compile – resulting type is `MutableList<in String!>..List<Any?>?` which is not compatible to `List<String>` val folders: List<String> […]

Не может быть возврата внутри Runnable SAM в Котлин?

У меня есть следующая ошибка с этим фрагментом кода, который для меня не имеет смысла: fun spawnWorker(): Runnable { return Runnable { LOG.info("I am a potato!") return } } Моя IDE говорит это мне: Но интерфейс Runnable говорит иначе: @FunctionalInterface public interface Runnable { public abstract void run(); } В чем причина того, что я […]

Cant 'observOn' основная нить с RxKotlin

Я пытаюсь наблюдать наблюдаемые в основной теме, используя: // Kotlin Code Observable .observeOn(AndroidSchedulers.mainThread()) но я получаю следующую ошибку: Type Mismatch: Required: rx.Scheduler! Found: io.reactivex.Scheduler! Наблюдаемый, на который я подписался, является библиотекой, написанной на Java, и поэтому использует RxJava. Неужели я глуп и что-то не хватает? Я озадачен: $ Заранее спасибо 🙂

Функция расширения Kotlin доступа к частному полю Java

Я хотел бы получить доступ к частному полю Java при использовании функции расширения Kotlin. Предположим, что у меня есть класс Java ABC . ABC имеет только одно частное поле mPrivateField . Я хотел бы написать функцию расширения в Kotlin, которая использует это поле по любой причине. public class ABC { private int mPrivateField; } функция […]

Классы данных в Котлине

В чем разница между: определение 1 data class Person (var name:String, var age:Int) определение 2 class Person (var name:String, var age:Int) определение 3 class Person (){ var name:String = "" var age:Int = 1 } В 3 случаях, когда я использую автозаполнение, я видел те же методы, что и доступные POJO … то же, но […]

Заменить setter для переменной, определенной в конструкторе по умолчанию

Итак, у меня есть класс Kotlin, который выглядит примерно так: class MyClass { var myString: String = "" set(value) { field = value doSomethingINeed() } constructor(myString: String) { this.myString = myString } } Тем не менее, Android Studio предупреждает меня, что я могу использовать это как конструктор по умолчанию. Когда я выбираю это, он меняет […]

Преобразование Kotlin SAM с частным внутренним интерфейсом Java?

Рассмотрим следующий класс Java: package javapkg; public class JavaClass { private interface JavaInterface { void foo(); } public void bar(JavaInterface ji) { ji.foo(); } } Котлин, который использует внутренний интерфейс этого класса с преобразованием SAM (обратите внимание, что KotlinClass находится в другом пакете): package kotlinpkg import javapkg.JavaClass class KotlinClass { fun f() { val jc […]

Вывод типа компилятора Kotlin не может выбрать способ вызова (двусмысленность с типичными типами)

Итак, у меня есть некоторые методы Java с этими сигнатурами (удаленные аннотации и тело кода для простоты): public class JavaClass { public static <E extends CharSequence> E join(E… array) { … } public static <E extends CharSequence> E join(CharSequence separator, E… array) { … } } И у меня есть код в Kotlin, который вызывает […]