当前位置:  开发笔记 > 编程语言 > 正文

Kotlin:尚不支持Java 8的哪些功能?

如何解决《Kotlin:尚不支持Java8的哪些功能?》经验,为你挑选了1个好方法。

是否有关于Java 8功能的最新概述,Kotlin尚不支持?


例如,调用Map#putIfAbsent等默认方法无法编译(不支持的引用错误):

import java.util.*

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

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

import java.util.*

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

这就是我通过实验发现的,但是为了决定是否已经可以从Java 8代码基础迁移到Kotlin,系统的概述将是有价值的.


更新:我的示例中的代码是由"Java to Kotlin"转换器创建的.正如user2235698指出的那样,Map是一个不可变的Kotlin地图.但是,当我将其更改为java.util.Map地图时,该示例无法编译.然而,我声称它必须使用默认方法做一些事情会产生误导.

由于它超出了这个问题的范围,我在这里开了一个后续问题:java.util.HashMap在Kotlin中没有实现java.util.Map吗?



1> Philipp Claß..:

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

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有