成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

Java中泛型的理解

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

泛型是Java SE 1.5的新特性,泛型的本質是參數化類型,也就是說所操作的數據類型被指定為一個參數。這種參數類型可以用在類、接口和方法的創(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出現的地方都會被真實的類型替代
    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)
調用:
Listlt;Studentgt; stuList  queryForList(sql, );

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

標簽: