10

我刚开始使用 Scala 并遇到了一个问题:

Scala 有 Types Tuple1, Tuple2, ..., Tuple22. Scalaquery 在遍历查询时返回元组。

我现在有一个给定的类(ZK's ListitemRenderer),它接受Objects 并用行填充 gui 列表,每行包含一些单元格。但ListitemRenderer不是通用的。所以我的问题是我有一个Object“数据”,它实际上是一个任意长度的元组,我必须对其进行迭代以创建单元格(只需使用data._1.toString, ...)。

自从没有 我不知道超类型Tuple1-22,我不能 不能只是做data.asInstanceOf[Tuple].productIterator foreach {…}

我能做些什么?


下面的答案告诉我,所有元组确实有一个特征Product——提供所需的foreach功能。

4

1 回答 1

17

所有TupleX类都继承自Product,它定义了def productIterator : Iterator[Any]. 您可以调用它来遍历任何元组的所有元素。

例如:

def toStringSeq(tuple: Product) = tuple.productIterator.map(_.toString).toIndexedSeq
于 2011-05-24T20:25:38.150 回答