Tag: kotlin interop

Kotlin:将列表转换为Java可变参数

我怎样才能将我的Kotlin列表转换为Java字符串数组? (称为函数是在Java中,并期望可变参数)。 val angularRoutings = arrayOf<String>( "/language", "/home", "/registration", "/registration-summary", "/admin/registration", "/init") // this doesn't work web!!.ignoring().antMatchers(angularRoutings) 如何将ArrayList传递给可变参数方法参数?

用Java + Mockito嘲笑Kotlin方法

所以我将一个小的Java代码库迁移到Kotlin只是为了好玩,而且我已经迁移了这个Java类: public class Inputs { private String engineURL; private Map<String, String> parameters; public Inputs(String engineURL, Map<String, String> parameters) { this.engineURL = engineURL; this.parameters = parameters; } public String getEngineURL() { return engineURL; } public String getParameter(String key) { return parameters.get(key); } } 到这Kotlin表示: open class Inputs (val engineURL: String, private val parameters: Map<String, String>) { […]

在Kotlin中使用CompletableFuture的异常方法

我正在尝试处理Kotlin中的CompletableFuture异常,但我无法弄清楚如何提供适当的参数。 所以,例如,我有: CompletableFuture.runAsync { "sr" } .exceptionally{e -> {}} 但是然后编译器抱怨Cannot infer type parameter T 我该如何解决?

Jinq在Kotlin – 如何将lambda转换为java SerializedLambda?

我可以在Kotlin有可序列化的lambda吗? 我正在尝试使用Kotlin的Jinq库,但它需要可序列化的lambda表达式。 有没有可能的语法? 更新: 我的代码: var temp=anyDao.streamAll(Task::class.java) .where<Exception,Task> { t->t.taskStatus== TaskStatus.accepted } .collect(Collectors.toList<Task>()); 我得到这个错误: Caused by: java.lang.IllegalArgumentException: Could not extract code from lambda. This error sometimes occurs because your lambda references objects that aren't Serializable. 在lambda中引用的所有对象都是可序列化的(代码在java中没有错误)。 更新2 调试后,似乎kotlin lambda没有被转换成Jinq所需的java.lang.invoke.SerializedLambda来获取信息。 所以问题是如何将其转换为SerializedLambda。

如何在Java中轻松使用Kotlin渠道生产者?

作为开发新API的一部分,我正在学习使用Kotlin。 最初我希望Kotlin API能在Java(Android)项目中使用,但从长远来看,我希望完全采用Kotlin。 作为改进长期运行过程的一部分,我想使用协程。 具体来说, kotlinx.courtines包中的渠道生产者 。 例如: fun exampleProducer() = produce { send("Hello") delay(1000) send("World") } 在Java中使用这个最好的方法是什么? 我可以为Kotlin和/或Java添加临时的“帮手”功能。

从Java调用Kotlin – 错误:包演示不存在

我不明白的文件 : 包级函数 在org.foo.bar包中的example.kt文件中声明的所有函数和属性,包括扩展函数,都被编译成名为org.foo.bar.ExampleKt的Java类的静态方法。 // example.kt package demo class Foo fun bar() { } // Java new demo.Foo(); demo.ExampleKt.bar(); 我的代码如下。 编译错误; 构建失败: thufir@dur:~/NetBeansProjects/kotlin$ thufir@dur:~/NetBeansProjects/kotlin$ gradle compileJava > Task :compileJava /home/thufir/NetBeansProjects/kotlin/src/main/java/net/bounceme/dur/kotlin/App.java:12: error: package demo does not exist new demo.Foo(); ^ /home/thufir/NetBeansProjects/kotlin/src/main/java/net/bounceme/dur/kotlin/App.java:13: error: package demo does not exist demo.ExampleKt.bar(); ^ 2 errors FAILURE: Build failed with an […]

Kotlin – 对伴侣对象的属性可见性

所以我有下面的代码,写在Kotlin。 我在最后一条指令行( return params.keys.containsAll(MANDATORY_PARAMS) )上收到编译错误,编译器说Unsolved reference: MANDATORY_PARAMS ,但我真的不明白为什么。 我认为伴侣对象应该对他们“保持联系”的类别的属性具有某种可见性。 我能做些什么来解决这个问题? 我怎样才能使MandatoryParametersValidator和它的伴侣对象可见MANDATORY_PARAMS ? (免责声明:这段代码正在从Java迁移到Kotlin,在Java版本中, mandatoryParametersHaveBeenProvided曾经是同一个类的静态方法。) import javax.validation.ConstraintValidator import javax.validation.ConstraintValidatorContext class MandatoryParametersValidator : ConstraintValidator<EnforceMandatoryParameters, Map<String, String>> { val MANDATORY_PARAMS = arrayOf("bookingReference", "lastName") override fun initialize(constraintAnnotation: EnforceMandatoryParameters?) { // do nothing } override fun isValid(params: Map<String, String>, context: ConstraintValidatorContext?): Boolean { MANDATORY_PARAMS .filter { !params.containsKey(it) } .forEach { […]

用新的kotlin 1.1构建错误,kapt不能解析数据绑定参数

我更新了我的项目从android studio 2.2到android studio 2.3,并将项目从kotlin 1.06增加到kotlin 1.1 这是我得到的错误 :app:javaPreCompileDebug :app:transformClassesAndDataBindingWithDataBindingMergeArtifactsForDebug UP-TO-DATE :app:compileDebugKotlin w: The '-d' option with a directory destination is ignored because '-module' is specified :app:compileDebugJavaWithJavac Processor path was modified by kapt. Previous value = /home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.1.0/ef03cfed144ff47eed2cab1f7be4381bc18a6237/kotlin-stdlib-jre7-1.1.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/android/databinding/compilerCommon/2.3.0/compilerCommon-2.3.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar:/home/harisvsulaiman/Sdk/extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.1/constraint-layout-solver-1.0.1.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/google/guava/guava/17.0/guava-17.0.jar:/home/harisvsulaiman/Sdk/extras/android/m2repository/com/android/support/support-annotations/25.2.0/support-annotations-25.2.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1.0/96a07041a11a09cf578892932d7511e1e11e3b6c/kotlin-stdlib-1.1.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/android/databinding/baseLibrary/2.3.0/baseLibrary-2.3.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.airbnb.android/epoxy-annotations/1.7.5/509abda14719aa31f55123c9a757bdadc8f45818/epoxy-annotations-1.7.5.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/io.realm/realm-annotations-processor/3.0.0/61c2ac9e7a068736558e69d585cfa777b35058b2/realm-annotations-processor-3.0.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/android/tools/annotations/24.5.0/annotations-24.5.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.7.0/9e9eeaf9948ee4d6c3ab354e8dc14368f16994a4/glide-3.7.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.2.6/de0c509ae6c9db5b5b6004a9d102c92708346f7c/rxjava-1.2.6.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.11.0/840897fcd7223a8143f1d9b6f69714e7be34fd50/okio-1.11.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/adapter-rxjava/2.2.0/d80514b6f44f0c4c6234e2d67fea783a25e77275/adapter-rxjava-2.2.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/googlecode/juniversalchardet/juniversalchardet/1.0.3/juniversalchardet-1.0.3.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/android/databinding/compiler/2.3.0/compiler-2.3.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/io.realm/realm-annotations/3.0.0/32a01bbb8cb421b6d53d7a102412142b0391c8c7/realm-annotations-3.0.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/org/antlr/antlr4/4.5.3/antlr4-4.5.3.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/retrofit/2.2.0/41e67dba73c3347e4503761642c39d0e06ca1f2/retrofit-2.2.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/squareup/javawriter/2.5.0/javawriter-2.5.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.6.0/69edde9fc4b01c9fd51d25b83428837478c27254/okhttp-3.6.0.jar:/home/harisvsulaiman/.android/build-cache/478fd1ace0e77af57c87f42a281aed180d5ce276/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/d7d6ec093cb49766f796118979b331d6f5c2b4c4/output/jars/classes.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/io.realm/realm-annotations/3.0.0/32a01bbb8cb421b6d53d7a102412142b0391c8c7/realm-annotations-3.0.0.jar:/home/harisvsulaiman/.android/build-cache/17205aea1b3195cf38fb66c2e060ee4beed141f8/output/jars/classes.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/adapter-rxjava/2.2.0/d80514b6f44f0c4c6234e2d67fea783a25e77275/adapter-rxjava-2.2.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.retrofit2/retrofit/2.2.0/41e67dba73c3347e4503761642c39d0e06ca1f2/retrofit-2.2.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.okhttp3/okhttp/3.6.0/69edde9fc4b01c9fd51d25b83428837478c27254/okhttp-3.6.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.squareup.okio/okio/1.11.0/840897fcd7223a8143f1d9b6f69714e7be34fd50/okio-1.11.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/io.reactivex/rxjava/1.2.6/de0c509ae6c9db5b5b6004a9d102c92708346f7c/rxjava-1.2.6.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.7.0/9e9eeaf9948ee4d6c3ab354e8dc14368f16994a4/glide-3.7.0.jar:/home/harisvsulaiman/.android/build-cache/6249fbc26c3c324164d6bccd213e772dbffabab8/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/00346f3603afd369923753ca5b3574b3cbd68913/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/44456db0af44370448077b85155ec1b111460aaf/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/ab1b9ebddb2122246c96bfd338f92a2af4329445/output/jars/classes.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/com.airbnb.android/epoxy-annotations/1.7.5/509abda14719aa31f55123c9a757bdadc8f45818/epoxy-annotations-1.7.5.jar:/home/harisvsulaiman/.android/build-cache/fb128d6e98efde38d1b59985fb85f2eee1b186eb/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/c9550d2fd003ae92d1406c8c46f2b35cffe031ce/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/08e46ece36546bbc2b85ffa90c6a8a4cf3bbab10/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/b293042c81288354130e748246586e2669e423d1/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/6a84f4dc5c9dda9b0a661c34b982f15791783194/output/jars/classes.jar:/home/harisvsulaiman/Sdk/extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.1/constraint-layout-solver-1.0.1.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-jre7/1.1.0/ef03cfed144ff47eed2cab1f7be4381bc18a6237/kotlin-stdlib-jre7-1.1.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.1.0/96a07041a11a09cf578892932d7511e1e11e3b6c/kotlin-stdlib-1.1.0.jar:/home/harisvsulaiman/.gradle/caches/modules-2/files-2.1/org.jetbrains/annotations/13.0/919f0dfe192fb4e063e7dacadee7f8bb9a2672a9/annotations-13.0.jar:/home/harisvsulaiman/.android/build-cache/79467da2ee5fd2328774a23645475ecb9d0946fd/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/02c10559b235748437a45d6ca44f6c5e5230c4e9/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/82bf4ec6a1051c7130958118c35d8fb99643c133/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/8dd8873d08fda228f6ea3117e6073fd14e35a5d4/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/8fc507ef1c90eab75de9d0123ad4b7535753f320/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/5fb2bef0cb0bba8cf7f981cadcf1cf142a325276/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/0727c2e3f4507058ea7ae52687ced332bf06362f/output/jars/classes.jar:/home/harisvsulaiman/.android/build-cache/31d4c76434ce8a5ba46bf630f178e855f7516250/output/jars/classes.jar:/home/harisvsulaiman/Sdk/extras/android/m2repository/com/android/support/support-annotations/25.2.0/support-annotations-25.2.0.jar:/home/harisvsulaiman/android-studio/gradle/m2repository/com/android/databinding/baseLibrary/2.3.0/baseLibrary-2.3.0.jar Destination for generated sources was modified by kapt. Previous value = /home/harisvsulaiman/AndroidStudioProjects/Hafiz/app/build/generated/source/apt/debug :app:compileDebugKotlinAfterJava w: The '-d' option with […]

将侦听器对象作为函数参数传递给kotlin

我试图从一个行动的一个监听器传递给一个类(一个适配器)。 在java中(来自Action的代码): private void setListeners() { adapterRecyclerView.setListener( new View.OnClickListener() { @Override public void onClick(View v) { SomeCodehere…. } }); } (来自适配器的代码) public void setListener(View.OnClickListener listener) { this.listener = listener; } 有用。 现在我正在试着去kotlin。 我首先翻译行动(翻译行动kotlin): private fun setListeners() { // !! is not fine i know adapterRecyclerView!!.setListener { v -> SomeCodehere…. } } 此时仍然有效。 使用适配器的代码仍然在java和kotlin类中的代码。 现在我把适配器翻译成kotlin: fun […]

Java – >原始类型的Kotlin转换

我正在写CRaSH插件,在Java中看起来像 public class AuthPlugin extends CRaSHPlugin<AuthenticationPlugin> implements AuthenticationPlugin<String> { @Override public String getName() { return "auth"; } @Override public Class<String> getCredentialType() { return String.class; } @Override public boolean authenticate(String username, String credential) throws Exception { System.out.println("authenticate " + username + " : " + credential); return false; } @Override public void init() { System.out.println("init"); } […]