java - scala 类中的 println 不会在 STDOUT 上显示输出

标签 java scala class object println

我在tutorialspoint上找到了这段代码。代码看起来非常简单。它从类点调用 move 方法。该方法在 STDOUT 上打印新的 x/y 坐标。但是,事实并非如此,我也不明白为什么。我在 cygwin 上的 scala 上运行了代码,也在 cloudera VM 上的 Spark-shell 上运行了代码。相同的结果:-)

如果有人能指出(没有双关语)我做错了什么,我将不胜感激。

class_plus.scala:

import java.io._

class Point(val xc: Int, val yc: Int) {
   var x: Int = xc
   var y: Int = yc
     def move(dx: Int, dy: Int) {
     x = x + dx
     y = y + dy
     println ("Point x location : " + x);
     println ("Point y location : " + y);
  }
 }

  object Test {
   def main(args: Array[String]) {
      val pt = new Point(10, 20);

     // Move to a new location
     pt.move(10, 10);
   }
  }

然后我运行:

  u0124587@U0124587-TPL-B ~
  $ scala class_plus.scala

  u0124587@U0124587-TPL-B ~
  $

最佳答案

这是因为你的 main 方法没有被执行。如果将此行添加到文件底部以显式调用 main 方法,它应该可以工作:

Test.main(args)

要让 Test 中的 main 方法按照您期望的方式作为入口点工作而不添加额外的行,您需要首先将文件编译为类:

scalac class_plus.scala  

这将在同一目录中创建几个类文件,然后您可以运行

scala Test     

这应该给你你期望的输出

关于java - scala 类中的 println 不会在 STDOUT 上显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35659095/

相关文章:

java - 如何从 java 8 中的双重嵌套映射中收集对象?

java - 是地球表面上多边形内部或外部的点

algorithm - Scala 函数式快速排序

scala - Shapeless:Foo[T, U] 的 UnaryTCConstraint

Swift:指向结构体与类的指针

c++ - 没有调用复制构造函数?

java - 具有唯一哈希值的快速哈希函数

java - X-Frame-Options 支持同一域的不同子域

performance - Actor 队列的最大大小?

Java:从其他类获取返回值