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



在我的 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)
   }
}

如何初始化单例Args?

有没有其他方法来共享主要参数?

正如蒂姆在他的评论中提到的:不要这样做。

如果你不想用这些参数弄乱你的代码,你可以使用 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)
  }
}

最新更新