我在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中存储正确。
有什么问题?
答案 0 :(得分:0)
您必须在类路径中明确放置A.class:
scalac -classpath . b.scala
(将.
替换为包含A.class的目录(如果它不在当前目录中)
您遇到的下一个问题是import ptest.A
,它没有做任何有用的事情并产生警告。无需导入您所在的包的成员。
A.p
会产生错误。 A.p
表示在值p
上调用A
,但此时不存在值A
。有一个类A
,但如果没有先创建该类的实例,则无法访问类成员。