非常に単純に見える 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」のすべての要素が同じ型であるという保証がないからですか? とにかくこれを機能させる方法はありますか、それとも私は何かぎこちないことをしているだけですか?