4
scala> class A { type T <: String; def f(a: T) = println("foo")}
defined class A
scala> (new A).f("bar")
<console>:9: error: type mismatch;
found : java.lang.String("bar")
required: _1.T where val _1: A
(new A).f("bar")
^
類A
有一個抽象類型T
,但不是抽象類。創建A
(如圖所示)的對象不會定義類型T
。抽象類型在具體類中的使用?
我的第一個想法是,我被允許通過任何類型的T
這是一個字符串的子類,但我不是。那麼在對象中究竟是什麼類型的T
以及我允許通過什麼?