为什么这个不使用外部类的Scala内部类仍然获得对它的引用?

时间:2019-04-28 07:48:13

标签: scala inner-classes scala-compiler

当我调试时,我看到内部类here得到了对其外部类的引用,即使它没有使用外部类的任何值。内部类是内部类的唯一原因是它可以引用外部类的类型。

trait CorrectingParserWriter extends OptimizingParserWriter with EditorParserWriter {
  ...
  final class SRCons[+Result](val head: LazyParseResult[Result], _tail: => SortedParseResults[Result]) extends SortedParseResults[Result] {
    ...
  }
  ...
}

我添加了final,试图删除对外部的引用,但没有成功。

为减少内存消耗,我不希望小对象SRCons引用其外部类。但是,取消嵌套此内部类会引入许多类型参数,这会使代码一团糟。

0 个答案:

没有答案