Kotlin与Java接口相关联

时间:2018-06-08 13:48:53

标签: interface kotlin

我在Kotlin练习馆藏,无法理解界面的行为。以下是我的问题的背景:

public interface List<out E> : Collection<E> {...}
public interface MutableList<E> : List<E>, MutableCollection<E> {...}

ListMutableList是Kotlin中定义的接口,易于理解。现在,如果我想获取List的实例,可以使用这些方法:arrayListOf()mutableListOf()。两种方法都使用相同的typealias,它实际上是ArrayList的Java实现的链接。

public typealias ArrayList<E> = java.util.ArrayList<E>

这是一个神秘的东西,MutableList在Kotlin中没有实现,那么Kotlin如何知道java.util.ArrayList可以分配给MutableList变量?换句话说,Kotlin和Java接口是如何相互关联的?

1 个答案:

答案 0 :(得分:2)

Kotlin中的接口与Java接口具有一对一的关系。 MutableList和其他集合接口是一个例外;它们由编译器以特殊方式处理,以支持只读和可写集合接口之间的分离。