2017-05-31 30 views
0

スクリプトで自動生成される以下のような関数があります。"Any *" varargs引数を "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*/ 
    } 

} 

私が最初の関数から2番目の関数に渡した可変引数を渡しているとき、WrappedArrayとして取得します。このWrappedArrayに一致する型を入力する方法はありますか?これを行うにはより良い方法がありますか?

最初の機能の場合はタイプが指定されていません。

+3

[スカラ配列をスカラー変数法に渡すにはどうすればいいですか?](https://stackoverflow.com/questions/31064753/how-to-pass-scala-array-into-scala-vararg-method) –

+1

@DavisBroda 'args'自体がvarargsであるという事実は、別の情報であり、混乱するかもしれません(解決策は確かに同じですが)。 –

+0

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

答えて

2

可変引数は、あなたがそうでなければ

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

を行う必要があるとして、引数を渡すには、引数はタイプSeq[Any]の1つの引数として理解されるであろう。

+0

ありがとうございました。これは魅力的に機能しました。 –

関連する問題