gpt4 book ai didi

java - Kotlin:Java 8 的哪些特性还不支持?

转载 作者:IT老高 更新时间:2023-10-28 13:37:45 31 4
gpt4 key购买 nike

是否有 Java 8 功能的最新概述,但 Kotlin 尚不支持这些功能?


例如,调用像 Map#putIfAbsent 这样的默认方法编译失败(不支持的引用错误):

import java.util.*

fun main(args: Array<String>) {
val x : Map<Int, Int> = HashMap<Int, Int>()
x.putIfAbsent(1, 2)
}

如果默认方法被覆盖,它可以工作:

import java.util.*

fun main(args: Array<String>) {
val x : HashMap<Int, Int> = HashMap<Int, Int>()
x.putIfAbsent(1, 2)
}

这是我通过实验发现的,但要确定从 Java 8 代码基础迁移到 Kotlin 是否已经可行,系统的概述会很有值(value)。


更新:我的示例中的代码是由“Java to Kotlin”转换器创建的。正如用户 2235698 指出的那样,Map<Int, Int>是一个不可变的 Kotlin 映射。尽管如此,当我将其更改为 java.util.Map 时,该示例仍无法编译。 map 。然而,我声称它必须使用默认方法做某事的说法具有误导性。

由于超出了这个问题的范围,我在这里打开了一个后续问题:Does java.util.HashMap not implement java.util.Map in Kotlin?

最佳答案

已知的 Java 8 互操作性问题作为 this issue 的子任务进行跟踪

关于java - Kotlin:Java 8 的哪些特性还不支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34228786/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com