Scala - AbstractSeq如何减少字节码大小

时间:2017-07-14 12:25:28

标签: java scala bytecode

我正在经历scaladocs并遇到AbstractSeq课程。他们将其描述为

Explicit instantiation of the Seq trait to reduce class file size in subclasses.

这如何减少子类的文件大小?无论如何,子类将获得所有方法吗?有人可以解释这是如何工作的

1 个答案:

答案 0 :(得分:4)

当您直接扩展特征时,该类会为每个方法获取一个方法,并在特征中实现。

所以,让我们假设您在N中使用Seq方法实现(并且特征Seq本身扩展)。如果您有M个类延伸Seq,则需要M*N个方法。当他们扩展AbstractSeq时,AbstractSeqN个方法,所有其他类都继承它们。因此,为(M-1)*N个方法减少1个额外的课程。