Проблема в том, что вы действительно не можете дать такую гарантию.Например:
scala> import scala.collection.mutable.Buffer
import scala.collection.mutable.Buffer
scala> val s: Seq[Buffer[_]] = Seq(Buffer(1), Buffer("a"))
s: Seq[scala.collection.mutable.Buffer[_]] = List(ArrayBuffer(1), ArrayBuffer(a))
Видите?Вы не знаете, что s(0)
и s(1)
относятся к одному и тому же типу, поскольку они могут не относиться к одному и тому же типу.
На этом этапе вам следует задать вопросо том, чего вы хотите достичь, вместо того, чтобы спрашивать, как решить проблему в , как вы хотите это сделать.Они так и не сработают.Отойдите назад, подумайте, какую проблему вы пытались решить с помощью этого подхода, и спросите, как решить эту проблему.
Например, вы скажете:
Я предполагаю, что все элементы впоследовательность того же типа (но не знаю, какой из них на данный момент).
Возможно, вы захотите параметризовать класс или метод и использовать его параметр типа, когдаобъявив s
.Или, может быть, вообще не иметь s
.