父字段初始化

时间:2010-10-18 08:47:41

标签: scala

在以下示例中,reason的引用存储在父级和子级中。我想避免这种情况并仅将引用存储在父级中(通常使用Java异常)。

import java.lang.{Exception, Throwable}
class FileError(message: String, reason:Throwable) extends Exception(message, reason) {
  ...
}

如何在不在子类对象中存储值的情况下初始化父类字段?

1 个答案:

答案 0 :(得分:8)

如果您从未在reason课程中使用FieldError,那么它将不会存储在FieldError中。

import java.lang.{Exception, Throwable}
class FileError(message: String, reason:Throwable) extends Exception(message, reason)

-

brianhsu@NBGentoo ~ $ scalac -print test.scala 
[[syntax trees at end of cleanup]]// Scala source: test.scala
package <empty> {
  class FileError extends java.lang.Exception with ScalaObject {
    def this(message: java.lang.String, reason: java.lang.Throwable): FileError = {
      FileError.super.this(message, reason);
      ()
    }
  }
}