다음 코드에서 Array[A]
을 반환 할 수 있지만 A
을 반환 할 수없는 이유는 무엇입니까? A
은 어떻게 반납합니까? 음 ... 대답은 간단합니다, 당신은이 두 가지 예에서 다른 일을하고있는왜 [A] 배열을 반환 할 수 있습니까?하지만 A를 사용하지 않는 이유는 무엇입니까? 어떻게 A를 반환 할 수 있습니까?
scala> import scala.reflect._
import scala.reflect._
scala> class Covariant[+A]{
| def m[A:ClassTag]:Array[A] = new Array[A](1)
| }
defined class Covariant
scala> class Covariant[+A]{
| def m[A:ClassTag]:A = new A
| }
<console>:15: error: class type required but A found
def m[A:ClassTag]:A = new A
^