2017-07-14 5 views
3

私はscaladocsを使い、AbstractSeqクラスを見つけました。彼らはどのようにこれは、サブクラスのファイルサイズを小さくんスカラ - AbstractSeqによるバイトコードサイズの削減方法

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

としてそれを記述しますか?とにかくサブクラスはすべてのメソッドを取得しますか?誰かがこれがどのように動作するか説明できますか?

答えて

4

特性を直接拡張すると、そのクラスは、特性に実装されたメソッドごとにメソッドを取得します。

それでは、あなたがNSeqにおける実装とメソッド(および特性Seq自体が伸びる)を持っているとしましょう。 MのクラスがSeqの場合は、M*Nのメソッドが必要です。それらが拡張するときAbstractSeqAbstractSeqNメソッドを持ち、他のすべてのクラスはそれらを継承します。したがって、より少ないメソッドの(M-1)*Nに対して1つの余分なクラスをトレードオフします。

関連する問題