Scala - 不是包的成员

时间:2012-08-19 17:41:41

标签: scala

我正在学习Scala,如果这是一个愚蠢的问题,请耐心等待。

我有这个包和一个类(把它简化为最简单的版本):

package Foo {
  class Bar {}
}

然后在main.scala文件中我有:

import Foo.Bar

object test {
  def main() {
    val b = new Bar()
  }
}

为什么我会这样:

  

test.scala:1:错误:Bar不是Foo的成员

它指向import声明。

3 个答案:

答案 0 :(得分:3)

scalac是scala编译器。 Foo.bar需要编译才能使用它,因此您不能将main.scala作为脚本运行。

代码中的另一个错误是main方法需要

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

(或者您可以改为test extends App并取消main方法。)

我可以确认你是否将上面的两个文件放在一个空目录中(对主方法签名进行了更正)并运行scalac *后跟scala test它正确运行。

答案 1 :(得分:1)

最可能的解释是你没有编译第一个文件,或者你在编译时做错了什么。假设两个文件都在当前目录中,那么这应该可以工作:

scalac *.scala

它应该在当前目录中生成一些类文件,以及它将创建的Bar.class目录中的Foo文件。

答案 2 :(得分:0)

要快速测试IntelliJ中的scala代码(使用Scala plugin),只需键入 Ctrl + Shift + F10

test code in Scala

请注意,对于测试Scala类,您还有其他选择,IntelliJ中也支持这些选项: