当我调试时,我看到内部类here得到了对其外部类的引用,即使它没有使用外部类的任何值。内部类是内部类的唯一原因是它可以引用外部类的类型。
trait CorrectingParserWriter extends OptimizingParserWriter with EditorParserWriter {
...
final class SRCons[+Result](val head: LazyParseResult[Result], _tail: => SortedParseResults[Result]) extends SortedParseResults[Result] {
...
}
...
}
我添加了final
,试图删除对外部的引用,但没有成功。
为减少内存消耗,我不希望小对象SRCons引用其外部类。但是,取消嵌套此内部类会引入许多类型参数,这会使代码一团糟。