Scala没有';无法从手动创建的包导入

Scala没有';无法从手动创建的包导入,scala,import,package,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

我在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
尽管.class在dictionary ptest中存储正确


有什么问题吗?

必须将.class显式放置在类路径上:

scalac -classpath . b.scala
(如果.class不在当前目录中,则将其替换为包含该类的目录)

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

A.p
产生错误
A.p
意味着对值
A
调用
p
,但此时不存在值
A
。有一个类
a
,但是如果不先创建该类的实例,就无法访问该类的成员