如果我使用Set接口引用并尝试调用add方法,则会得到一个未解决的引用错误:
fun main(args : Array<String>) {
val set = HashSet<Integer>()
set.add(Integer(1)) //OK
val seti : Set<Integer> = HashSet<Integer>()
seti.add(Integer(2)) //FAILING: Unresolved reference to add**
}
Run Code Online (Sandbox Code Playgroud)
我不明白那种行为.Java Set接口有一个add方法,我希望Kotlin可以作为扩展版本而不是更少的方法.
PD1:我在Idea IDE中遇到了同样的错误或者使用gradle构建.PD2:使用kotlin 1.0.0-beta-4584
Kotlin将Java的Set接口分为两个接口:Set和MutableSet.后一个接口声明了变异方法,例如add您正在寻找的方法.
通常,接口(如MutableSet扩展Set接口)和实现(如HashSet实现MutableSet接口).Set然后可以使用该接口传递只读实例,以帮助避免常见错误的发生.
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |