在Scala IDE中,我有以下代码:
package pkg.one
object S {
class A
}
class S {
import pkg.one.S.A //all ok
}
和
package pkg.two
class Z(a: A) //error
如何导入A类以便我可以在Z类中使用它? Scala IDE提供了两种解决方案:import pkg.one.S$.A
和import pkg.one.S.A
,第一种解决方案本身只是一个明显的错误而第二种解决方案不起作用,因为它说它无法找到该类。我知道还有import pkg.one.S#A
类型的导入,但IDE将'#'符号视为错误。我一直无法理解如何解决这个问题,阅读有关导入Scala内部类的一般可用信息,因为我的案例似乎是合法的。
答案 0 :(得分:1)
使用scalac(通过SBT),工作解决方案是import pkg.one.S.A
。目前,Scala-Ide eclipse插件有时会看到虚构的错误......我倾向于避免使用IDE,当我使用它们时(对于包含大量Java内容的大型项目),我仍然在使用SBT的终端中进行所有编译。
答案 1 :(得分:1)
对于记录,对于Scala 2.9.x的Scala IDE 2.0.0(更新站点:http://download.scala-ide.org/releases-29/stable/site),这对我来说很合适。
在import pkg.one.S.A
类声明之前添加Z
对我有用。你用的是什么版本? (或许最好通过scala-ide-user ML)