重複の可能性:
Scala: 抽象型とジェネリック
私の理解では、次の 2 つのクラス定義は同じです。では、構文以外の違いは何ですか?
abstract class Container[T] {}
class IntContainer extends Container[Int] {}
abstract class Container2 { type T }
class IntContainer2 extends Container2 { type T = Int }
逆コンパイルされたバイト コードを見ると、最初のセットにはまだジェネリックがあることに気付きます (ただし、 IntContainer は Object: 型として定義されていますpublic class IntContainer extends Container<Object>
)。2 番目のセットには、そのような情報はありません。とにかく、すべてのジェネリック型が消去されたと思いました...
PS Scala 2.10-M5 を使用する