Scala使用Object运行无结果仅提示defined object Demo如何解决
问题说明
运行Scala代码尝试获取Map键对应值时,仅收到defined object Demo提示,无预期打印输出,涉及代码如下:
import scala.collection.immutable._ object Demo { val mymap : Map[String, String] = Map("1" -> "ME", "2" -> "SUPERMAN", "3" -> "ZOD") def main(args: Array[String]) { println(mymap("1")); } }
故障原因
defined object Demo是Scala交互式运行环境(REPL)的提示信息,代表你输入的Demo对象已经成功加载到当前环境,但REPL不会在对象定义完成后自动执行对象内的main入口方法,因此不会触发打印逻辑。
解决方案
- 若在REPL环境调试:对象定义完成后,手动输入
Demo.main(Array())回车执行,即可得到键"1"对应的输出ME。如果需要打印全部三个键的取值,先把main方法内的打印逻辑补全为以下内容,重新定义对象后再执行main方法即可:def main(args: Array[String]) { println(mymap("1")) println(mymap("2")) println(mymap("3")) } - 若用本地文件方式运行:将代码保存为
Demo.scala文件,在文件对应目录下执行scala Demo.scala命令,运行时会自动识别main方法作为程序入口,直接输出结果。 - 若在IDEA等集成开发环境运行:不要单独执行编译操作,直接点击
main方法行侧的运行按钮,选择运行Demo即可触发程序执行。
内容的提问来源于stack exchange,提问作者user3418170
相关产品推荐
相关产品推荐

