【问题标题】:Scala doesn't import from manually created packageScala 不会从手动创建的包中导入
【发布时间】:2014-08-22 07:17:26
【问题描述】:

我在 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 中。

怎么了?

【问题讨论】:

    标签: scala import package


    【解决方案1】:

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

    scalac -classpath . b.scala
    

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-31
      • 2013-08-24
      • 2022-07-06
      • 1970-01-01
      • 2019-06-24
      • 2014-01-27
      • 1970-01-01
      • 2017-10-25
      • 2020-12-28
      相关资源
      最近更新 更多