Scala-如何使用另一个类的数据初始化对象

时间:2019-07-11 08:19:53

标签: scala singleton args

在我的Scala应用程序(版本2.11)中,我想在我的整个应用程序中使用主要参数。

为此,我想创建一个对象(在Scala中为单例),并使用main-args初始化它。

类似的东西:

  object MyMain{
    def main(args: Array[String]):Unit = {
      //how to set SingletonArgs with args???
    }

  object SingletonArgs{
    def getArg0():String{...}
    def getArg1():String{...}
  }

  class AnotherClass(){
   def printArg0(){
     println(SingletonArgs.getArg0)
   }
}

如何初始化SingletonArgs?

是否有其他共享主要参数的方式?

1 个答案:

答案 0 :(得分:4)

Tim 在他的评论中提到:不要这样做。

如果您不想让这些参数使代码混乱,可以使用implicits

object MyMain {
  def main(args: Array[String]): Unit = {
    implicit val myArgs = MyArgs(args(0), args(1))
    new AnotherClass().printArg0()
  }
}

case class MyArgs(arg0: String, arg1: String)

class AnotherClass()(implicit args: MyArgs) {
  def printArg0() {
    println(args.arg0)
  }
}