我在包中的单独文件中有以下对象和特征定义
object Bloxorz extends App // in Bloxorz.scala
trait Solver extends GameDef // in Solver.scala
trait GameDef // in GameDef.scala
trait GameDef
我希望测试一种方法。所以我在我的包的根目录中创建了一个工作表并尝试导入它。
import streams.GameDef._
但我收到以下错误
object GameDef is not a member of package streams. Note: trait GameDef exists, but it has no companion object
由于Solver
扩展GameDef
,我认为我需要导入Solver
,但这会产生相同的错误。只导入Bloxorz
对象没有抛出错误,但是没有公开GameDef
所需的方法。
答案 0 :(得分:1)
试试这个:
import streams.GameDef
上面的代码导入了名为GameDef的包的所有类。我猜 G ameDef是一个类,对象或特征,因为它是大写的。事实上,您所获得的错误很好地描述了您的问题:
对象GameDef不是包流的成员。注意:特质GameDef 存在,但它没有伴侣对象
答案 1 :(得分:0)
我根据您的说法和我的假设创建了代码段。我以为你只想测试Pos,而不是GameDef。
GameDef.scala:
package test
trait GameDef {
case class Pos(x: Int, y: Int) {
// Pos will play with x and y here.
}
}
YourWorksheet.sc:
package test
object TestPosInsideGameDef extends GameDef {
def newPos(x: Int, y: Int): Pos = new Pos(x, y)
val pos = newPos(1, 2)
}