可能是重复问题:
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
IntContainer
对象了? - Gabe