卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

Java中泛型的理解

泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。 泛型類或泛型

泛型是Java SE 1.5的新特性,泛型的本質(zhì)是參數(shù)化類型,也就是說所操作的數(shù)據(jù)類型被指定為一個參數(shù)。這種參數(shù)類型可以用在類、接口和方法的創(chuàng)建中,分別稱為泛型類、泛型接口、泛型方法。

泛型類或泛型接口

如果一個類要和別的N個類型打交道,但是處理的邏輯都是一樣的,我們可以把要處理的類作為類參(泛型),減少重復的代碼。

class AListForStudent{
    void add(Student stu){
        ...
    }
    Student get(int index){
    }
}
class AListForTeacher{
    void add(Teacher stu){
        ...
    }
    Teacher get(int index){
    }
}
class AList{
    void add(Object stu){
        ...
    }
}

上面的代碼展示了三種處理不同類型對象的方式:完全重復的邏輯,只是運算因子不一樣,用方法的封裝去解決;完全重復的邏輯,只是實例狀態(tài)不同,用繼承去解決;完全重復的邏輯,只是面向的具體類型不同,用泛型去解決。

class AListlt;Tgt;{
    // T待定,泛型類中可以把T當作一個類型來使用。一旦確定,所有T出現(xiàn)的地方都會被真實的類型替代
    void add(T stu){
        ...
    }
    T get(int index){
    }
}
AListlt;Studentgt; stuList  new AListlt;Studentgt;();
(new Teacher()); // 編譯錯誤
(new 好學生()); // 正確

泛型方法

lt;Tgt; Listlt;Tgt; queryForList(String query, Classlt;Tgt; claz, Object... params)
調(diào)用:
Listlt;Studentgt; stuList  queryForList(sql, );

上面的代碼展示了一個泛型方法的例子,通過在方法簽名中使用lt;Tgt;聲明類型參數(shù),使得該方法可以返回不同類型的List。

標簽: