Использование asInstanceOf
на самом деле не рекомендуется.Вы можете использовать функцию для достижения более плавного преобразования типов:
def seqOfAnyToSeqString(param : Seq[Any]) : Seq[(String, String)]
= param.collect {
case (x, y) => (x.toString, y.toString)
}
Для проверки этой функции:
val a = Seq(1,2,3, 4 -> "b")
seqOfAnyToSeqString(a)
Выходы:
a: Seq[Any] = List(1, 2, 3, (4,b))
res0: Seq[(String, String)] = List((4,b))
Таким образом, она будет игнорироватьте элементы в последовательности, которые не определены как кортежи, но преобразуют все кортежи в кортежи строки.Я, конечно, предполагаю, что ввод достаточно прост и достаточно простого .toString
.
РЕДАКТИРОВАТЬ:
В качестве альтернативы, как предлагается в комментариях, есливы абсолютно уверены, что последовательность является экземпляром Seq[(String, String)]
, вы можете написать приведенную выше функцию - , используя типовые описания - как:
def seqOfAnyToSeqString(param : Seq[Any]) : Seq[(String, String)]
= param.collect {
case (x : String, y : String) => (x, y)
}
Но обратите внимание, что это приведет к удалению элементовесли они не соответствуют (String, String)
.