简体   繁体   English

如何将列表作为参数传递给 Scala 中的对象

[英]How to pass List as argument to object in Scala

I have created object which takes list as argument but when I passed list to execute object,I get error.Please guide,code is as follows我创建了以列表为参数的对象,但是当我通过列表执行对象时,出现错误。请指导,代码如下

object myobj {
    private var dateList  = List[String]()
    private val NPARAMS = 1

    private def parseArgs(args:Array[String]):Unit ={
        if(args.length < NPARAMS){
            println("Insufficient No of Parameters")
            System.exit(1)
        }
        var i = 0
        dateList = List(args(i))
    }
    // Some code...
}

Now executing object现在执行对象

val dateList =  ("2019-01-01","2019-01-02")

myobj.main(Array(dateList))

Error错误

dateList: (String, String) = (2019-01-01,2019-01-02)

<console>:37: error: type mismatch;
 found   : (String, String)
 required: String
       myobj.main(Array(dateList))
                        ^

Your variable dateList is a tuple.您的变量dateList是一个元组。 In scala the notation (TypeA, TypeB) as in your error message is a shorthand for scala.Tuple2[TypeA, TypeB].在 scala 中,错误消息中的符号 (TypeA, TypeB) 是 scala.Tuple2[TypeA, TypeB] 的简写。

What you want is an Array Array("arg1", "arg2") .你想要的是一个 Array Array("arg1", "arg2")

Did you mean你的意思是

val dateList =  Array("2019-01-01","2019-01-02")
myobj.main(dateList)

? ?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM