无法通过命令行编译简单项目

时间:2013-12-13 14:03:17

标签: shell scala

我有一个由两个类组成的简单玩具项目:

object A {
    var b = B()
}

class B {
....
}

我无法使用任何IDE,因为我需要使用ssh

由于错误,我无法编译项目:

A.scala:18: error: not found: value B

我使用编译:

scalac *.scala 

我试着玩类路径但是没有解决。

你能帮帮我吗?

2 个答案:

答案 0 :(得分:4)

由于您尚未为B定义companion object,因此在实例化时,您需要new B()而非B()

答案 1 :(得分:3)

如果要使用B实例化类var b = B(),则需要使用B工厂方法为类apply()创建一个伴随对象:

class B {
  // ...
}

object B {
  def apply(): B = new B()
}

请注意,B()B.apply()的特殊语法。

另一种方法是使B成为案例类:

case class B {
  // ...
}

然后会自动生成一个带apply方法的伴随对象(以及toString和模式匹配方法)。