2017-05-31 74 views
0

我有一个像下面这样的函数,它由脚本自动生成。将“Any *”变量参数传递给需要“Any *”的另一个函数

def printFunc(args : Any*) : Unit = { 
    funcCallHandler.call(args) 
} 

funcCallHandler中的调用函数看起来像这样。该函数也从其他生成的函数获取可变参数。

def call(args : Any*) : Unit = { 

    for (arg <- args) { 
     /*Check type using a match function 
     and add do the rest of the code*/ 
    } 

} 

当我传递变量参数,我们从第一功能到了第二个提到的一个我把它作为一个WrappedArray。有没有一种方法来匹配这个WrappedArray或者有更好的方法来做这件事?

该类型没有在第一个功能的情况下指定。

+3

[如何将scala数组传递到scala可变参数方法?](https://stackoverflow.com/questions/31064753/how-to-pass-scala-array-into-scala-vararg-method) –

+1

@DavisBroda'args'本身就是一个可变参数,这是一个不同的信息,可能会让人困惑(尽管解决方案确实是一样的)。 –

+0

'funcCallHandler.call(args:_ *)' – Dima

回答

2

来传递参数作为可变参数,你需要做的

def printFunc(args : Any*) : Unit = { 
    funcCallHandler.call(args: _*) 
} 

否则,ARGS将被理解为Seq[Any]类型的一个参数。

+0

非常感谢。这工作像一个魅力。 –

相关问题