28

私はArray[Any]from Java JPA を含んでいます (この場合は 2 つですが、少数を考慮してください) 型の異なるものがあります。代わりにこれらをタプルとして表現したいと思います。

私はいくつかの簡単で汚い変換コードを持っており、それをどのように改善し、おそらくより一般的にすることができるか疑問に思いました.

val pair = query.getSingleOrNone // returns Option[Any] (actually a Java array)
pair collect { case array: Array[Any] =>
  (array(0).asInstanceOf[MyClass1], array(1).asInstanceOf[MyClass2]) }
4

4 に答える 4

38

これはどう?

val pair = query.getSingleOrNone
pair collect { case Array(x: MyClass1, y: MyClass2, _*) => (x,y) }
// result would be Option[(MyClass1, MyClass2)]
于 2012-09-25T14:58:42.690 に答える
24

を使用しmap { case Array(f1,f2) => (f1,f2) }ます。

以下に例を示します。

Array( "CA:California", "WA:Washington", "OR:Oregon").
  map(s => s.split(":")).
  map { case Array(f1,f2) => (f1,f2)}
于 2015-11-23T23:39:22.033 に答える