问题标签 [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 投票
3 回答
2794 浏览

kotlin - 将 Java 选项调用迁移到 kotlin

我正在使用 kotlin 迈出第一步。

我正在将一些现有的 java 代码迁移到 kotlin。

我有以下行:

其中 storyDate 是一个 Optional 并且 article 有一个方法 setPublishDate(Date) 方法。

我将如何将此行迁移到 kotlin?

https://try.kotlinlang.org上的自动迁移器是

但是这一行不能用 kotlin 编译器编译。

0 投票
2 回答
83 浏览

java - Kotlin 中的 For 循环行为不端

我正在尝试遍历 for 循环,但是当我尝试从 2D 数组中获取值并添加该值时,for 循环行为异常。这是我分享的代码...

0 投票
1 回答
1526 浏览

kotlin - Passing null as part of vararg parameter to Java method from Kotlin

I have something similar to this method declaration in Java. Let's say the class is named JavaClass:

If I want to call this from Kotlin (my version is 1.2.21), I could write something similar to this:

The strange thing is that I get an IllegalStateException when executing this code. It says arg2 must not be null. I could understand if it said that args must not be null. But considering that this call would result in the array looking like ["", null], which in Java is perfectly fine, this seems very strange.

I need to be able to pass null values to this method. What do I need to do to fix this behaviour?

0 投票
2 回答
1008 浏览

java - 使用接受 Kotlin 中受保护类的公共方法从 Java 类继承

我有这种情况:有一个Java类

和一个 Kotlin 类,它继承自它并且必须覆盖方法“overrideMe”

但是 Kotlin 不允许这种行为。

'public' 函数公开了它的 'protected (in A)' 参数类型 B

有什么办法可以解决这个问题吗?

PS 这不仅仅是一个综合案例 - 当我尝试实现自定义Spring AmqpAppender并覆盖它的 postProcessMessageBeforeSend 方法时,我遇到了这个问题。

0 投票
2 回答
15629 浏览

kotlin - Kotlin Native 如何将 ByteArray 转换为 String?

我在玩kotlin-native samples。我想知道如何StringpinnedByteArray 中获取信息。只想在控制台中打印它。

0 投票
1 回答
97 浏览

android - 在父级中调用内部类在 kotlin 中不起作用

当我遇到这种奇怪的行为时,我正在将一个 java 项目转换为 kotlin。

在 Java 中:

工作正常。

但在 kotlin 中它给了我编译错误:

在此处输入图像描述

我知道我可以通过使用来解决它,FrameLayout.LayoutParams 但为什么原始代码不起作用?

0 投票
3 回答
2456 浏览

generics - Kotlin 泛型 Out-projected 类型禁止使用

我正在使用一种来自后端的动态表单系统。为了能够映射我的表单,我有一个带有泛型的访问者模式,我让它在 Java 中工作,但我无法让它在 Kotlin 中工作。

我有这个界面:

然后我有这样的访问器列表:

并想像这样使用它:

但这不起作用并给我:

如果你知道我做错了什么会很酷:)

编辑:这是我拥有的结构的一个小要点https://gist.github.com/jaumard/1fd1ccc9db0374cb5d08f047414a6bc8

我不想通过使用 Any 来丢失类型,与 Java 相比感到沮丧,因为它真的很容易实现。我现在了解星形投影的问题,但除此之外还有什么可以实现与 java 相同的吗?

0 投票
2 回答
5721 浏览

android - 如何将 @IntRange() 支持注释应用于 Kotlin 属性设置器

我一直在试图找出如何申请@IntRange(from = 1)我的 Kotlin 财产。经过几次失败的尝试,我终于在 Java 中创建了我想要的类,并将其转换为 Android Studio 中的 Kotlin。这是我的Java类:

这是我从 Android Studio 得到的自动转换:

@IntRange似乎适用于 getter 但不适用于 setter 。是否可以将此注释应用于设置器,以便出现适当的 lint 警告。目前我刚刚重写了 set 方法来抛出一个 IllegalArgumentException ,如下所示:

我已经尝试添加@set:IntRange(from = 1),但我得到了错误This annotation does not apply for type void,因为它试图应用于@IntRange返回值(在 setter 的情况下是无效的)而不是 setter 参数。

0 投票
2 回答
166 浏览

javascript - 如何从 JavaScript 访问 Kotlin 对象

我正在使用 kotlin2js 从 Kotlin 代码生成 JS 库。然后我在 Javascript(不是 Kotlin)中使用这个库。该代码有一些 Kotlin 对象和一些普通类。我可以从 Javascript 访问普通类,但我无法以任何方式访问对象。

文档非常稀疏,只有相关的行可能是这样的:

Kotlin 在 JavaScript 中保留了惰性对象初始化。

我不确定那是什么意思。

0 投票
0 回答
49 浏览

java - 为什么将 kotlin 类传递给受 Java 泛型约束的 Java 函数时没有编译错误?

在将 kotlin 与 Java 一起使用时,我无法强制执行类型安全。请参阅下面显示设置的代码片段,缺少编译错误是问题所在。