Почему параметр типа привязан к T <: Comparable [T ] сбой для T = Int?

scala> class Foo[T <: Comparable[T]](val x : T)
defined class Foo

scala> (3: Int).asInstanceOf[Comparable[Int]]  
res60: java.lang.Comparable[Int] = 3

scala> new Foo(3)                              
<console>:13: error: inferred type arguments [Int] do not conform to class Foo's type parameter bounds [T <: java.lang.Comparable[T]]
       new Foo(3)
       ^

Является ли второе выражение результатом стирание типа?

Как мне определить Foo, чтобы я мог параметризовать его с помощью Int, но все же иметь возможность выполнять некоторые действия по упорядочиванию с его переменной экземпляра?

13
задан Collin 6 November 2010 в 13:55
поделиться