Kotlin旨在与Java完全兼容。 Array<X>
在运行时和从Java的角度来看都是X[]
。Java数组不实现Iterable
,因此Kotlin数组(几乎相同)也不实现。
我们可以通过创建一个与Java数组无关的独立类来使数组实现Iterable
。但是,为了保持与Java的兼容性,我们必须执行从这种类型到Java数组的隐式转换以及从Java数组回到该类型时的转换。隐式转换通常不是最佳选择,因为会产生性能开销和不清晰的对象标识语义。在这里,它们只解决了问题的一半,因为您仍然需要在从Java调用Kotlin代码时手动“装箱”数组。这就是为什么这种解决方案被认为不可行的原因。
List
接口。 - voddan