Как преобразовать (java) список в (scala) ListBuffer (не Buffer) в java? - PullRequest
1 голос
/ 14 февраля 2020

Есть ли способ конвертировать java .util.List в Scala .mutable.ListBuffer?

В JavaConverter asScalaBufferConverter возвращает Buffer, но метод из проекта scala принимает только ListBuffer.

enter image description here

Есть ли способ преобразовать список в ListBuffer? или я должен проверить с другой командой lib, чтобы они изменили его в буфер или список?

1 Ответ

2 голосов
/ 14 февраля 2020

Поскольку Луис склонен не публиковать однострочники в качестве ответов, вот немного расширенный ответ, поэтому я могу собрать его отклики

Scala 2.12

import scala.collection.JavaConverters._
import scala.collection.mutable.ListBuffer

val jlist = List(1,2,3).asJava
jlist.asScala.to[ListBuffer]   // res0: scala.collection.mutable.ListBuffer[Int] = ListBuffer(1, 2, 3)

Scala 2.13

import scala.jdk.CollectionConverters._
import scala.collection.mutable.ListBuffer

val jlist = List(1,2,3).asJava
jlist.asScala.to(ListBuffer)

Примечание Scala 2.13 внесены следующие изменения

Новый to(Collection) метод

  • Список Заменяет старый to[Collection] метод.
  • Аргумент - объект-компаньон требуемого типа коллекции, например .to(Vector).
  • Изменение API позволяет поддерживать все типы коллекций (включая Map, BitSet и др.).
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...