如何从另一个scala文件扩展一个scala文件中定义的类

时间:2015-02-20 03:03:02

标签: java scala

这是我的第一个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

1 个答案:

答案 0 :(得分:3)

val E = new Node(NodeType.E)

这是尝试访问名为NodeType的伴随对象并获取其字段E。

您定义的NodeType不是伴随对象,而是一个类。想想伴侣对象,比如Java术语中类的静态部分。您正试图访问"静态" NodeType的一部分由于尚未定义NodeType的伴随对象而不存在。

此外,为什么要尝试使用参数构造新的Node?您的节点类占用0个参数。

也许您可以尝试向我们解释您想要建模的内容。

相关问题