也许我错过了一些明显的东西,但是:
package.scala
package heptic
package object proj {
case class Jesus(axes: Int)
def foo: Jesus = Jesus(44)
}
出现编译错误:
found : heptic.proj.Jesus
required: heptic.proj.package.Jesus
def foo: Jesus = Jesus(44)
^
这似乎没有多大意义(特别是当类型推断崩溃编译器时(最新的,2.10.1))
答案 0 :(得分:3)
sbt clean
表示此类错误。
编译了另一个类Jesus
但未删除。我猜您已将Jesus
从package
移至package object
并获得了两者。
答案 1 :(得分:0)
为了使这项工作正常,我相信您需要将此代码放入文件夹结构'/ heptic / proj'(源文件夹下)中名为package.scala
的文件中。 scala文件需要被称为package.scala
,它需要在匹配的包文件夹结构下才能真正表现得像包对象。
答案 2 :(得分:0)
在包中声明case类,但不在包对象中声明:
package heptic
package object proj {
def foo: Jesus = Jesus(44)
}
package proj {
case class Jesus(axes: Int)
}