2013-12-13 98 views
0

編譯一個簡單的項目,我做了兩個班的一個簡單的玩具項目:不能使用命令行

object A { 
    var b = B() 
} 

class B { 
.... 
} 

我不能使用任何IDE,因爲我需要使用ssh

我不能編譯該項目,因爲錯誤的:

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

我編譯使用:

scalac *.scala 

我試着玩的類路徑,但沒有解決。

你能幫我嗎?

回答

4

由於您還沒有爲B定義companion object,因此當您將其實例化時,您需要new B()而不僅僅是B()

3

如果你想使用var b = B()實例B類,你需要創建B類同伴對象與apply()工廠方法:

class B { 
    // ... 
} 

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

注意B()B.apply()特殊的語法。

的另一種方式是使B的情況下類:

case class B { 
    // ... 
} 

然後用apply方法中的協同對象是自動生成的(以及一個toString和方法用於模式匹配)。