【发布时间】:2013-03-21 07:26:40
【问题描述】:
我有一个看似非常简单的 Scala 问题让我抓狂。这个:
class A
class B extends A
class C { def foo(a: Array[_ <: A]) { a(0) = a(1) }}
不编译。它说:
scala> class C { def foo(a: Array[_ <: A]) { a(0) = a(1) }}
<console>:8: error: type mismatch;
found : (some other)_$1(in method foo)
required: _$1(in method foo)
class C { def foo(a: Array[_ <: A]) { a(0) = a(1) }}
我想我明白了;是因为不能保证“A”的所有元素都是同一类型吗?有没有办法让这项工作,或者我只是在做一些笨拙的事情?
【问题讨论】:
标签: scala generics inheritance collections