首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的共享接口与Kotlin (例如: List<>)的关系

Java中的共享接口与Kotlin (例如: List<>)的关系
EN

Stack Overflow用户
提问于 2017-11-01 15:22:17
回答 1查看 87关注 0票数 1

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

代码语言:javascript
复制
public inline fun <T, R> Iterable<T>.map(transform: (T) -> R): List<R>{
return mapTo(ArrayList<R>(collectionSizeOrDefault(10)), transform)}

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

Java接口和Kotlin接口之间的关系是什么?我想会有更多类似的例子,可能是Set,还是Map?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-01 15:57:13

在JVM平台上,Kotlin接口kotlin.collections.List映射的java.util.List接口,kotlin.collections.MutableList也是。

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

还有更多的映射类型:见参考资料

这允许从Java调用Kotlin,反之亦然,同时仍然将Java类型表示为Kotlin中的kotlin.*类,例如,它将我们从非类的原语和数组中保存下来,并引入了通过接口不可变

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47058206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档