2013-12-13 4 views
0

У меня есть простой игрушечный проект, выполненный из двух классов:Не удается скомпилировать простой проект по командной строке

object A { 
    var b = B() 
} 

class B { 
.... 
} 

я не могу использовать любой IDE, потому что мне нужно использовать ssh.

Я не могу скомпилировать проект из-за ошибки:

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

компилировать с помощью:

scalac *.scala 

Я пытался играть с, но это путь к классам не решало.

Вы можете мне помочь?

ответ

4

Поскольку вы не определили companion object для B, когда вы его экземпляр, вам нужно new B() вместо того, чтобы просто B().

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 и методы для сопоставления с образцом).

Смежные вопросы