Scala不从手动创建的包导入

时间:2014-07-01 16:28:38

标签: scala import package

我在Ubuntu上使用Scala。 有两个文件

档案a.scala:

package ptest { class A() { def p = println ("A") } }

档案b.scala

package ptest { import ptest.A ; class B() { def p = {print("B"); A.p} }
}

编译b.scala会发出错误:。

$ scalac a.scala

$ scalac b.scala

b.scala:2: error: A is not a member of ptest

虽然A.class在字典ptest中存储正确。

有什么问题?

1 个答案:

答案 0 :(得分:0)

您必须在类路径中明确放置A.class:

scalac -classpath . b.scala

(将.替换为包含A.class的目录(如果它不在当前目录中)

您遇到的下一个问题是import ptest.A,它没有做任何有用的事情并产生警告。无需导入您所在的包的成员。

A.p会产生错误。 A.p表示在值p上调用A,但此时不存在值A。有一个类A,但如果没有先创建该类的实例,则无法访问类成员。