Scala特征 - 在Main对象中实现

时间:2018-04-29 11:05:49

标签: scala methods interface

我有一个特性并尝试在Main对象中实现它。这是可能的,最佳做法是什么?

trait PrintThis {
  def nowPrint (thing:String)
}

object Main extends PrintThis {
  def main(args: Array[String]): Unit = {

    def nowPrint(thing:String): Unit = {
      println("subject" )
    }

    nowPrint("test")

  }
}


如果那是不可能的 - 这是一个更好的方法(extend在另一个类中的trait并在另一个类中实现trait方法然后在Main类中extend该类并调用该方法)?

trait One {
  def show()
}

class Two extends One {
  def show() {println ("This is a show!") }
}

object Main extends Two {
  def main(args: Array[String]): Unit = {
    show()
  }
}

或许更好地在Main中实例化新类而不是extending呢?

object Main  {
  def main(args: Array[String]): Unit = {
    var pointer:Two = new Two
    pointer.show()
  }
}

1 个答案:

答案 0 :(得分:1)

不,这不是一个好方法。主要功能是开始运行您的应用程序。为什么你需要从Main扩展任何类?如果你想使用其他类,只需调用它们的对象。