Scala 如何将AnyRef数组转换为int元组

Scala 如何将AnyRef数组转换为int元组,scala,Scala,我需要将AnyRef数组(java函数参数)转换为int元组。我尝试了来自的接受答案,但这对我不起作用,因为在这个问题中,假设数组是Any的数组,而不是AnyRef的数组。最后,对我起作用的代码如下所示: val (x, y) = args match { case Array(x: Integer, y: Integer, _*) => (x, y) } 请注意,使用装箱类Integer而不是Int来处理我们从自动装箱的AnyRefs(java对象)中采购的事实。最后,对我有效的代码如

我需要将AnyRef数组(java函数参数)转换为int元组。我尝试了来自的接受答案,但这对我不起作用,因为在这个问题中,假设数组是Any的数组,而不是AnyRef的数组。

最后,对我起作用的代码如下所示:

val (x, y) = args match { case Array(x: Integer, y: Integer, _*) => (x, y) }

请注意,使用装箱类Integer而不是Int来处理我们从自动装箱的AnyRefs(java对象)中采购的事实。

最后,对我有效的代码如下所示:

val (x, y) = args match { case Array(x: Integer, y: Integer, _*) => (x, y) }

注意使用装箱类整数而不是Int来处理我们从自动装箱的AnyRefs(java对象)中采购的事实。

注意scala自动处理装箱/未装箱的二元性,因此您继续使用scala的
Int
而不是
java.lang.Integer
(假设您将数组正确地键入为
array[\u]
而不是
array[AnyRef]
):
val(x,y)=(args:array[\u])match{case array(x:Int,y:Int)=>(x,y)}
请注意,scala会自动处理装箱/未装箱的二元性,因此您会继续使用scala的
Int
而不是
java.lang Integer
(前提是将数组正确地键入为
array[\u]
而不是
array[AnyRef]
):
val(x,y)=(args:array[\u])match{case array(x:Int,y:Int)=>(x,y)}