LongArrayWritableというタイプがあり、これはLongの配列のボックス化された表現であるとしましょう。これらのタイプ間で変換する暗黙の定義があります。
implicit def boxLongArray(array: Array[Long]) : LongArrayWritable { /*elided*/}
implicit def unboxLongArray(array: LongArrayWritable) : Array[Long] { /*elided*/}
今、私はjava.lang.Iterableとscala.collection.List[X]の間でそれらの一般的な形式で変換する暗黙的なものも持っています:
implicit def iterator2list[X](it : java.lang.Iterable[X]) : List[X] { /* elided */ }
implicit def list2iterator[X](list : List[X]) : java.lang.Iterable[X] { /* elided */ }
これらの定義を使用して、scalaコンパイラーはjava.lang.Iterable[LongArrayWritable]とList[Array [Long]](と同等iterator2list(iterator).map(unboxLongArray(_)))の間の暗黙的な変換を推測できますか、またはこれは暗黙的な機能を超えているため、独自の(明示的?)暗黙的定義?
ありがとう、
ティム