gpt4 book ai didi

java - Java 和 Kotlin 中的共享接口(interface)之间的关系(例如 : List<>)

转载 作者:行者123 更新时间:2023-11-29 08:32:07 24 4
gpt4 key购买 nike

当我仔细查看 kotlin .map 内联函数时,问题出现了。这是它的定义

public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R>{
return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform)}

在函数定义中,应该返回一个List,这个List在Collection.kt中定义。但是,它返回的是一个 ArrayList,它在 Java (List.java) 中实现了一个 List 接口(interface)

Java接口(interface)和Kotlin接口(interface)有什么关系?我想会有更多类似的例子,也许是 Set,或者 Map?

最佳答案

在JVM平台上,Kotlin接口(interface)kotlin.collections.List映射到Java接口(interface)java.util.List,等等是 kotlin.collections.MutableList

意味着这些Kotlin接口(interface)的用法在字节码中被编译为Java List接口(interface)的用法。另一方面,从库中读取的签名中的 Java List 接口(interface)用法被视为 kotlin.collections.(Mutable)List

还有更多的映射类型:see the reference .

这允许以无缝的方式从 Java 调用 Kotlin,反之亦然,同时仍然将 Java 类型表示为 Kotlin 中的 kotlin.* 类,例如,这使我们免于原语和数组的困扰作为类,并介绍 immutability through interfaces .

关于java - Java 和 Kotlin 中的共享接口(interface)之间的关系(例如 : List<>),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47058206/

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