我有一个由两个类组成的简单玩具项目:
object A {
var b = B()
}
class B {
....
}
我无法使用任何IDE,因为我需要使用ssh
。
由于错误,我无法编译项目:
A.scala:18: error: not found: value B
我使用编译:
scalac *.scala
我试着玩类路径但是没有解决。
你能帮帮我吗?答案 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
和模式匹配方法)。