Преобразуйте набор Scala в Java (java.util. Набор)?

У меня есть Набор в Scala (я могу выбрать любую реализацию, поскольку я создаю Набор. Библиотека Java, которой я пользуюсь, ожидает java.util. Набор [Строка].

Следует за корректным способом сделать это в Scala (использующий scala.collection.jcl. HashSet#underlying):

import com.javalibrary.Animals

var classes = new scala.collection.jcl.HashSet[String]
classes += "Amphibian"
classes += "Reptile"
Animals.find(classes.underlying)

Это, кажется, работает, но так как я очень плохо знаком с Scala, которого я хочу знать, является ли это предпочтительным путем (любой другой способ, которым я пробую, я получаю ошибку несоответствия типов):

error: type mismatch;
 found   : scala.collection.jcl.HashSet[String]
 required: java.util.Set[_]
27
задан om-nom-nom 19 March 2013 в 13:33
поделиться

2 ответа

Если вы спрашивали о Scala 2.8, совместимость коллекций Java обеспечивается scala.collection.JavaConversions . В этом случае вам нужен JavaConversions.asSet (...) (по одному для каждого направления, Java -> Scala и Scala -> Java).

В Scala 2.7 каждый класс scala.collection.jcl, который обертывает коллекцию Java, имеет базовое свойство , которое предоставляет экземпляр обернутой коллекции Java.

23
ответ дан 28 November 2019 в 05:35
поделиться

Для 2.7.x I настоятельно рекомендуем использовать: http://github.com/jorgeortiz85/scala-javautils

5
ответ дан 28 November 2019 в 05:35
поделиться
Другие вопросы по тегам:

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