Как расширить класс, определенный в одном файле scala, из другого файла scala

1

Вот мой первый файл scala с именем Node.scala

class Node extends NodeType
{
   object Node  {
   val E = new Node(NodeType.E)

}

Вот мой NodeType.scala

class NodeType extends Enumeration {
  val PROGRAM = new NodeType()
  val DECLARATIONS = new NodeType()
  val DECLARATION = new NodeType()
  val TYPE = new NodeType()
  val STATEMENTSEQUENCE = new NodeType()
  val STATEMENT = new NodeType()
  val ASSIGNMENT = new NodeType()
  val IFSTATEMENT = new NodeType()
  val WHILESTATEMENT = new NodeType()
  val WRITEINT = new NodeType()
  val ELSECLAUSE = new NodeType()
  val EXPRESSION = new NodeType()
  val SIMPLEEXPRESSION = new NodeType()
  val TERM = new NodeType()
  val FACTOR = new NodeType()
  val E = new NodeType()
  class NodeType extends Val
  implicit def convertValue(v: Value): NodeType = v.asInstanceOf[NodeType]
}

Я получаю ошибку в NodeType, и когда курсор подсвечивается, он говорит, что не найден тип NodeType

  • 0
    Как вы собираете свои классы?
Теги:

1 ответ

3
Лучший ответ
val E = new Node(NodeType.E)

Это пытается получить доступ к сопутствующему объекту с именем NodeType и получить его поле E.

То, что вы определили как NodeType, не является сопутствующим объектом, это класс. Подумайте о сопутствующих объектах, таких как статическая часть класса в Java-терминах. Вы пытаетесь получить доступ к "статической" части NodeType, которая не существует, потому что объект-компаньон для NodeType не определен.

Кроме того, почему вы пытаетесь построить новый узел с аргументом? Класс node принимает 0 параметров.

Возможно, вы могли бы попытаться объяснить нам, что вы пытаетесь моделировать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню