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