在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Scala/ 類型下界
信息隱藏
類型上界
Variance(類型變體)標(biāo)識
概述和例子說明
類型下界

類型下界

我們還是使用前面的 Queue 的例子,我們知道,我們不能使用+T(協(xié)變關(guān)系)來定義 Queue,然而,我們可以通過給 equeue 方法本身提供一個類型參數(shù)使之一般化。

class Queue[+T] ( private val leading: List[T],
    private val trailing: List[T] {
    def enqueue[U >: T ](x: U) =
        new Queue[U](leading, x:: trailing)
}

在這個新定義中,使用了一個新的類型參數(shù) U, 語法結(jié)構(gòu) U >: T ,定義 T 為 U 的下界,因此U必須是 T 的一個父類。 enqueue 的返回類型也變成 Queue[U],而不是之前的 enqueue[T]。

舉例來說,比如說一個 Fruit 類定義了兩個子類 Apple 和 Orange, 使用這個新的 enqueue 定義,可以把一個 Orange 對象添加到一個 Queue[Apple]隊(duì)列中,其返回結(jié)果為一 個Queue[Fruit]類型。