我想迭代Pair
个对象的列表,但有一些问题。如下变量:
val list: JList[Pair[Integer, Integer]]
for (pair <- list){
//how to get first value and second value of pair instance
}
当我使用for
与<-
进行迭代时,我无法获取Pair
实例,并且无法获取Pair
的属性。
答案 0 :(得分:3)
我假设JList
这里是java swing组件。如果是这种情况,那么就我所知,你不能直接在for-comprehension中使用它。相反,你需要做类似的事情:
import scala.collection.JavaConversions._
for (pair <- list.getSelectedValuesList) {
//do something with pair
}
导入会产生从Java集合转换为Scala集合的implicits。您需要这样做,因为您使用的for-comprehension对foreach
方法调用进行了去糖,并且java.util.List
没有定义foreach
方法。
答案 1 :(得分:0)
增加Jason的答案。通常建议使用JavaConverters
代替JavaConversions
来避免nasty issues。它有点冗长,但更安全。
解决方案是这样的:
import scala.collection.JavaConverters._
for (pair <- list.asScala.getSelectedValuesList) {
//do something with pair
}