可能重复:
Scala:抽象类型与泛型
我理解它的方式,以下两个类定义是相同的。那么除了语法之外还有什么区别?
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>
)。第二组没有这样的信息。我以为所有泛型类型都被删除了......
PS 使用 Scala 2.10-M5