Этот файл:
object Test extends App {
val obj = List(1,2,3) : Object
val res = obj match {
case Seq(1,2,3) => "first"
case _ => "other"
}
println(res)
}
Дает это предупреждение:
Test.scala:6: warning: non variable type-argument A in type pattern Seq[A]
is unchecked since it is eliminated by erasure
case Seq(1,2,3) => "first"
версия 2.9.0.1.
Scala я не вижу, как стертый параметр типа необходим для выполнения соответствия. Тот первый пункт чехла предназначен, чтобы спросить, является ли obj Seq с 3 элементами, равными 1, 2, и 3.
я понял бы это предупреждение, если я записал что-то как:
case strings : Seq[String] => ...
, Почему я получаю предупреждение, и что хороший путь состоит в том, чтобы заставить его уйти?
Между прочим, я действительно хочу соответствовать против чего-то статическому типу Объекта. В реальном коде я анализирую что-то как данная величина Lisp - это могла бы быть Последовательность, последовательность данных, Символа, Числа, и т.д.