Вы можете создать его самостоятельно, как это
val nameIterator = Iterator.continually((names, names.nextElement)).takeWhile(_._1.hasMoreElements).map(_._2)
Iterator.continually
выполняет вызов по имени на (names, names.nextElement)
, который на каждом шаге возвращает исходное перечисление и следующий элемент. Условие остановки, конечно, в takeWhile
, и поскольку нам не нужно бесконечно обойти перечисление, мы map
только значения.
Кроме того, вы можете создать оболочку:
val nameIterator = new Iterator[SomeType] { def hasNext = names.hasMoreElements; def next = names.nextElement }
Или, наконец, это встроенный метод и, вероятно, тот, который следует использовать в этом случае:
val nameIterator = new scala.collection.JavaConversions.JEnumerationWrapper(names)
Использование последствий:
У меня есть еще один. Если вы импортируете
import scala.collection.JavaConversions._
вы можете сделать это неявно (и вы также получите неявные преобразования для других собраний Java)
request.getParameterNames.map(println)
и это просто работает.