Scala - как инициализировать объект данными из другого класса - PullRequest
0 голосов
/ 11 июля 2019

В моем приложении 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 Ответ

4 голосов
/ 11 июля 2019

Как Тим упоминается в его комментарии: не делайте этого.

Если вы не хотите загромождать свой код этими аргументами, вы можете использовать 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)
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...