问题标签 [kotlin-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
20646 浏览

java - 为什么在 Java 中实现返回 Unit 的 Kotlin 函数时必须返回 Unit.INSTANCE?

如果我有一个 Kotlin 函数

我想f从Java调用,我必须这样做:

这看起来很丑陋。为什么我不能像 一样写f(i -> dosomething());,因为Unit在 Kotlin 中相当于void在 Java 中?

0 投票
3 回答
19410 浏览

java - Kotlin 属性的私有 getter 和 public setter

如何在 Kotlin 中创建一个具有私有 getter(或没有它)但具有公共 setter 的属性?

不适用于错误:Getter visibility must be the same as property visibility

就我而言,原因是 Java 互操作:我希望我的 Java 代码能够调用setStatus但不能调用getStatus.

0 投票
2 回答
361 浏览

kotlin - Java lambda 类型推断在 Kotlin 中无法按预期工作

为什么这段 Java 代码在没有显式类型参数的情况下无法在 Kotlin 中编译Collectors.toList<String>()?有没有更惯用的方法来做到这一点?

0 投票
1 回答
1767 浏览

android - Is there an overhead for writing a library in Kotlin for Android?

I'm considering porting a Java (Android) library to Kotlin. I really like Kotlin and the benefits over Java should reduce the number of bugs in the library.

Since the library is targeting a resource constrained environment I'm worried that by porting the library to Kotlin there will be extra overhead.

Does a Kotlin library (distributed as .class files) introduce any runtime or extra overhead versus a Java library?

Will the resulting Android app be any larger or slower because of Kotlin?

0 投票
2 回答
621 浏览

kotlin - Kotlin 中的 Jinq - 如何将 lambda 转换为 java SerializedLambda?

我可以在 Kotlin 中有可序列化的 lambda 吗?我正在尝试使用 Kotlin 的 Jinq 库,但它需要可序列化的 lambda。是否有任何语法使它成为可能?

更新:

我的代码:

我收到此错误:

lambda 中引用的所有对象都是可序列化的(代码在 java 中不会产生错误)。

更新 2

调试后,似乎 kotlin lambda 没有翻译成 Jinq 从中获取信息所需的 java.lang.invoke.SerializedLambda。所以问题是如何将其转换为 SerializedLambda。

0 投票
1 回答
312 浏览

kotlin - 平台声明与 Comparable 冲突

我收到来自 Comparable 接口的多个默认实现的编译器的平台声明冲突错误(如下所示)。

我明白为什么会出现此错误;在 Java中compareTo映射到的两个默认实现。compareTo(Object)因此,在孩子身上,Kotlin 不知道该使用哪一个。

是否有一种机制可以让我选择要使用的机制,或者更好的是,让我覆盖compareTo(Object)?我试过定义compareTo(Any),但那是不对的。另一个帖子建议使用@JvmName,但注释不适用于此处(根据编译器)。

任何帮助将不胜感激。谢谢!

0 投票
1 回答
3219 浏览

kotlin - Kotlin 中 CompletableFuture 异常方法的使用

我正在尝试在 Kotlin 中处理 CompletableFuture 异常,但我无法弄清楚如何提供适当的参数。因此,例如,我有:

CompletableFuture.runAsync { "sr" } .exceptionally{e -> {}}

但随后编译器抱怨Cannot infer type parameter T

我该如何解决?

0 投票
1 回答
1081 浏览

java - JUnit、@ControllerAdvice 和 Kotlin 中缺少检查异常

我在 Kotlin 中编写了一个验证顾问EntityValidationException,它在验证失败时抛出:

我有一个 JUnit 测试(我在 Kotlin 中编写了一些部分,在 Java 中编写了一些部分,以在现有的私有项目中学习 Kotlin),它检查是否引发了异常:

但后来我看到测试失败了,因为它抛出UndeclaredThrowableException而不是EntityValidationException. 接下来,我读到Kotlin 没有检查异常。我认为不仅我有这个问题——我很确定当我们决定在生产项目中切换到 Kotlin 时,在 Spring 和 Java 中使用 @ControllerAdvice 处理异常的方式也可能会出现问题——因为它依赖于抛出的类,并且扔掉UndeclaredThrowableException我们这种可能性。有没有办法绕过这种行为,以确保可以切换到 Kotlin 并且旧的Spring 处理异常的方式(和单元测试ValidationAdvisor)将保持不变?预先感谢您的任何帮助。

项目的PS Github 存储库可在此处获得:Playgroud for Kotlin、Spring Data 等

PS2堆栈跟踪:

对我来说看起来像EntityValidationException(我想被抛出)原因UndeclaredThrowableExceptionEntityValidationExceptionKotlin 类代码:

PS3这也没有用:

PS4也许问题在于@AspectSpring @AroundData 存储库?

0 投票
0 回答
944 浏览

kotlin - Kotlin,项目结构

我正在编写一个 glm 的 kotlin 端口,我也将它用于 java 项目。

在这些 java 项目中,我想调用,例如glm.mul(...)

接口mul()的函数在哪里mat2x2_operators

现在,如果我glm声明为接口并且它的伴生对象mat2x2_operators以这种方式扩展

mul在 java 上可以通过

glm.Companion.mul(...)

如果我尝试声明glm为对象:

glm.INSTANCE.mul(...)

我不mul直接写在下面的原因glm是因为我有数百个函数我想在不同的地方(接口)保持有序,比如mat2x2_operators精确

有没有办法做到这一点?

0 投票
2 回答
1694 浏览

kotlin - 不能在 Kotlin 的 Runnable SAM 中返回?

这段代码出现以下错误,这对我来说毫无意义:

我的 IDE 对我说:

在此处输入图像描述

但 Runnable 接口另有说明:

是什么原因我不能在那里有回报,但没有任何回报,它编译得很好: