У меня есть Набор в 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[_]
Если вы спрашивали о Scala 2.8, совместимость коллекций Java обеспечивается scala.collection.JavaConversions
. В этом случае вам нужен JavaConversions.asSet (...) (по одному для каждого направления, Java -> Scala и Scala -> Java).
В Scala 2.7 каждый класс scala.collection.jcl, который обертывает коллекцию Java, имеет базовое свойство
, которое предоставляет экземпляр обернутой коллекции Java.
Для 2.7.x I настоятельно рекомендуем использовать: http://github.com/jorgeortiz85/scala-javautils