在以下示例中,reason
的引用存储在父级和子级中。我想避免这种情况并仅将引用存储在父级中(通常使用Java异常)。
import java.lang.{Exception, Throwable}
class FileError(message: String, reason:Throwable) extends Exception(message, reason) {
...
}
如何在不在子类对象中存储值的情况下初始化父类字段?
答案 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);
()
}
}
}