[Scala] 2.12 => 2.13 copyArrayToImmutableIndexedSeq is deprecated

0

method copyArrayToImmutableIndexedSeq in class LowPriorityImplicits2 is deprecated (since 2.13.0): Implicit conversions from Array to immutable.IndexedSeq are implemented by copying; Use the more efficient non-copying ArraySeq.unsafeWrapArray or an explicit toIndexedSeq call

Dostaję takie ostrzeżenie wskazujące split w ostatniej linijce tego:

    val seq = items
      .drop(1)
      .map(_.children.map(_.text).toSeq)
      .map(row => Country(row(0), row(1), row(3).replaceAll("[\\d,\\[\\]]", "").split(",")))
3

To samo ostrzeżenie jest przy kodzie:

val a: Seq[String] = "ala ma kota".split(" ")

String.split zwraca Array[String] (który nie jest podtypem Seq), a ty chcesz to wstawić bezpośrednio do parametru typu Seq i Scala uruchamia konwersje implicit (które same w sobie są powoli deprecated). Dorzuć .toSeq albo .toIndexedSeq na końcu, żeby pozbyć się ostrzeżenia i konwersji implicit, np:

val a: Seq[String] = "ala ma kota".split(" ").toSeq

1 użytkowników online, w tym zalogowanych: 0, gości: 1