2013-02-20 36 views
4

當我在Scala中使用下面的代碼,我得到一個運行時異常:無法使用java.lang.System.currentTimeMillis()在scala中訪問當前毫秒時間;

java.lang.NoSuchMethodError:主要 異常線程 「main」

object Driver { 

    def main(args:Array[String]) = { 

     java.lang.System.currentTimeMillis(); 

    } 

} 

但是當我刪除java.lang.System中。的currentTimeMillis();找到主要的方法。

這是爲什麼?

+0

也在System.currentTimeMillis中 – oluies 2013-02-20 23:42:21

回答

16

這是等號!

這導致Scala將main的返回類型推斷爲Long(Scala)/ long(在JVM級別)。當您刪除它時,它會推斷Unit/void。同樣,當您刪除對currentTimeMillis的呼叫時。

1

如果你需要的是時間,你可以使用compat.Platform.currentTime

也是你的對象應該是

object Driver { 

    def main(args:Array[String]){ 

     java.lang.System.currentTimeMillis(); 

    } 

} 
1

def main(args:Array[String]): Unit = {main()的確切簽名。刪除=似乎也是一個解決方案,但不太容易出錯。

相關問題