Scala 如何将AnyRef数组转换为int元组
我需要将AnyRef数组(java函数参数)转换为int元组。我尝试了来自的接受答案,但这对我不起作用,因为在这个问题中,假设数组是Any的数组,而不是AnyRef的数组。最后,对我起作用的代码如下所示: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对象)中采购的事实。最后,对我有效的代码如
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)}