在 Scala 中调用其他对象的主要方法

Posted

技术标签:

【中文标题】在 Scala 中调用其他对象的主要方法【英文标题】:Calling main methods in other objects in Scala 【发布时间】:2019-11-07 09:53:10 【问题描述】:

是否可以从另一个对象的主方法调用一个对象的主方法?我有以下类,想知道如何在一个程序运行中调用两个单独的主要方法:

object MongoUpload 
  def main(args: Array[String]): Unit = 
    .. upload to Mongo ..
    // Want to upload to Oracle here
  


object OracleUpload 
  def main(args: Array[String]): Unit = 
    .. upload to Oracle
  

有什么使main 在方法中独一无二吗?我可以直接给别人打电话吗?

【问题讨论】:

【参考方案1】:

你当然可以。就像任何其他方法一样,main 可以在对象之间调用。


object foo 
  def main(args: Array[String]): Unit = 
    println("qux")
  


object bar 
  def main(args: Array[String]): Unit = 
    println("baz")
    foo.main(null)
  


bar 中运行main 会得到以下输出:

baz
qux

同样的方法也可以复制到带参数的主要方法中,如下例所示:

object foo 
  def main(args: Array[String]): Unit = 
    println(args(0) + " " + args(1))
  


object bar 
  def main(args: Array[String]): Unit = 
    ... some processing ...
    foo.main(Array["Hello", "World"])
  

bar 中运行main 会得到以下输出:

Hello World

它是否会导致清晰易读的代码是另一个问题:)

【讨论】:

以上是关于在 Scala 中调用其他对象的主要方法的主要内容,如果未能解决你的问题,请参考以下文章

pyspark对应的scala代码PythonRDD对象

Scala 基础:Scala 函数式编程基础概念定义调用机制

Scala编程入门---面向对象编程之Trait高级知识

Scala面向对象和模式匹配

scala中怎样调用unapplyseq

2021年大数据常用语言Scala:基础语法学习 方法调用方式