问题标签 [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.
java - 如何在 Kotlin 中实现这个 Java 接口?
既然 Kotlin 没有原语,那么如何实现这个接口呢?
我无法更改 Java 代码,因为它是二进制库中的已编译类文件。
kotlin - 在 kotlin 中将侦听器对象作为函数参数传递
我正在尝试将侦听器从动作传递给类(适配器)。
在 java 中(来自动作的代码):
(来自适配器的代码)
有用。
现在我正在尝试翻译为 kotlin。我首先翻译动作(将动作翻译成 kotlin):
在这一点上仍然有效。适配器的代码仍在 java 中,类的代码在 kotlin 中。现在我将适配器翻译成 kotlin:
现在它不起作用。动作不编译。
错误:无法推断此参数“v”的类型。需要 View.OnClickListener。找到 (???) 单位。
我必须如何在这里做演员?为什么将参数从 kotlin 传递到 java 有效,而从 kotlin 传递到 kotlin 却不行?
kotlin - Kotlin 使用 Java 回调接口
我有一个 Web 视图。我想打电话
这种方法。
这是 ValueCallback 接口:
这是我的科特林代码:
有人知道在 kotlin 中重写 onReceiveValue 方法吗?我尝试了“将 Java 转换为 Kotlin”,但结果如下:
谢谢!
kotlin - 从 Java 调用 Kotlin 内联函数
例外.kt:
在科特林:
它在 kotlin 中工作,并且函数是内联的。
但是在Java代码中使用时,就是不能内联,仍然是正常的静态方法调用(从反编译的内容看)。
像这样的东西:
java - 从 Java 中调用具有类委托的 Kotlin 对象作为静态方法
这可能有点难以描述,所以我将尝试举一个具体的例子来说明我正在尝试做的事情。
假设我们有一个 Facade 接口和类(在 Java 中),像这样:
在我的应用程序中,我需要多个单例来保存外观的一个实例。真正的外观有额外的设置/配置参数,但这些参数在这里无关紧要。
在我开始使用 kotlin 之前,我会有一个类,它包含一个门面的静态实例(不是真正的单例,但在我的情况下,它具有类似的目的),它代理对门面的调用,如下所示:
现在,有了 Kotlin,我们有了类委托,可以让我写这样的东西:
这很棒 - 不再需要样板文件,我可以像调用java 一样SingletonKt
从 KotlinSingleton
类调用:
SingletonKt
但是,当我使用from Java时会出现一个小问题。然后我必须指定INSTANCE
:
我知道@JvmStatic
注释,但是我可以将它放在SingletonKt
文件中而不会导致编译错误的唯一位置是之前FacadeInterface
,它似乎并没有起到作用。
有没有办法设置这个类委托,以便我可以从 Java 调用它,就好像它是一个静态方法一样,而不引入创建代理方法的样板SingletonKt
(这会破坏类委托的目的)?
kotlin - 从 java 中调用作为 java 中关键字的 kotlin 函数?
由于new
不是 kotlin 中的关键字,因此我可以在 kotlin 中具有以下功能。
但是我无法从 java 调用这个函数,因为new
它是 java 中的一个关键字。我想知道这个函数在java领域是否有一些别名。我没有找到任何可能是此函数别名的 intellij 建议。
编辑 1:
我在 kotlin 中编写了以下代码:
我查看了 java 字节码。如下。
这是反编译成java的字节码:
看来编写一个名为 new 的函数是一个有效的 java 字节码。但是javac
不让我编译代码。是否有一些注释或编译器标志我可以启用以javac
通过调用此函数来编译 java 文件。
java - Kotlin 项目中使用的遗留 Java 库中的空值安全性
假设我在旧/旧 Java 库中有特定代码:
前两个参数使用 @NotNull 和 @Nullable 注释正确注释(使用 jetbrains.annotations)。第三个(unnanotatedString)没有适当的注释。
当我在 Kotlin 代码中使用此类并将所有构造函数参数设置为非空值时,一切都很好:
第一个值是非空的,所以我可以在没有安全调用的情况下访问它。第二个值,我需要使用安全调用(nullableString?.length),如果没有,我有一个编译时错误,到目前为止还不错。在第三个值(unannotatedString)上,我可以在没有安全调用的情况下使用它,它编译得很好。
但是当我将第三个参数设置为“null”时,我没有收到编译时错误(不需要安全调用,只有运行时 NullPointerException:
这是预期的行为吗?Kotlin 的编译器是否将未注释的 Java 方法与使用 @NotNull 注释的方法相同?
kotlin - 在 Kotlin Javascript 中传递参数时,'x' 不是函数
我不断收到此错误:TypeError: Scraper.dumpTitle is not a function
而且我不知道为什么...
索引.html
主.js
生成的js
笔记
- 调用
dumpTitle1()
工作正常..所以我遇到的问题只是传递参数 - 无需指出我可以访问
document
Kotlin 中的变量而无需传递它,我知道......但我想传递另一个document
对象来使用
kotlin - Kotlin Vertx 类型不匹配发现未来预期的处理程序>
我认为在 Kotlin 中,Unit
相当于Void
. 使用 Vert.x 服务发现,不可能将 a 传递Future<Unit>
给unpublish(String id, Handler<AsyncResult<Void>> resultHandler)
(给出类型不匹配),但它会Future<Void>
毫无问题地接受。为什么会这样,是否有解决方案,或者我只能忍受 using Void
?
kotlin - 用 Kotlin JS 解析 JSON 很有趣解析(文本:字符串):T`?
我该如何使用
fun <T> parse(text: String): T
在 Kotlin JS 中解析 JSON?
例如,我如何解析这个 JSON 字符串?