Создайте java.util.List из java.util.Set в Scala

Я хотел бы создать список Java на основе другой коллекции Java, например. Установить в Scala.

Почему это невозможно? Я получаю обязательное сообщение: ошибка scala.this.Int.

val in: java.util.Set[String] = new java.util.HashSet()
val out : java.util.List[String] = new java.util.ArrayList(in)

Это сработало, но не кажется правильным:

val in: java.util.Set[String] = new java.util.HashSet()
val out: List[String] = new java.util.ArrayList()

out.addAll(in.asInstanceOf[java.util.Set[String]])

Спасибо!

4 голоса | спросил hammarback 2 J000000Thursday09 2009, 16:30:36

2 ответа


0

Вам нужно будет явно передать переменную типа ArrayList.

Это отлично работает:

val in = new java.util.HashSet[String]
val out = new java.util.ArrayList[String](in)
ответил Tony Morris 2 J000000Thursday09 2009, 16:53:58
0

Это работает:

val in: java.util.Set[String] = new java.util.HashSet()
val out : java.util.List[String] = new java.util.ArrayList[String](in)

Я предполагаю, что проблема как-то связана с стиранием типов, так как ArrayList не параметризован, как массив Scala, а скорее является экзистенциальным типом. Это, вероятно, делает вывод типа невозможным.

ответил Daniel C. Sobral 2 J000000Thursday09 2009, 16:55:15

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132