泛型烹俗,枚舉

泛型的用處

  • 將運(yùn)行時的異常提前至了編譯時
  • 避免了無謂的強(qiáng)制類型轉(zhuǎn)換

自定義泛型

  • 自定義泛型就是一個數(shù)據(jù)類型的占位符或者是一個數(shù)據(jù)類型的變量揍移。

  • 自定義泛型的命名符合標(biāo)識符的規(guī)則即可辕漂,但時黍图,一般用大寫字母T(Type) 或 E (Element)表示。

1.方法上自定義泛型
修飾符 <聲明的自定義泛型> 返回值類型 函數(shù)名(使用的自定義泛型...) {

    
}

public <T> T test(T t) {

    return t;
}
2.泛型類
class 類名<聲明自定義泛型>{


}

class Test<T> {

    public void add(T t) {

    }

    public T remove(T t) {
        return t;
    }
}

注意
1.泛型類定義的泛型的具體數(shù)據(jù)類型和措,是在使用該類創(chuàng)建對象時確定的庄呈。
2.當(dāng)使用泛型類創(chuàng)建對象時,沒有指定具體的泛型數(shù)據(jù)類型派阱,則默認(rèn)為Object诬留。
3.泛型類上的自定義泛型,不能作用于靜態(tài)方法贫母。
4.靜態(tài)方法如果要使用自定義泛型文兑,需要自己聲明使用。
3.泛型接口
interface 接口名<聲明自定義泛型> {

    返回值類型 函數(shù)名(使用的自定義泛型...);
}

interface Test<T> {

    T add(T t);
}

//如果要延長接口自定義泛型的具體數(shù)據(jù)類型腺劣,那么格式如下
class ImpTest<T> implements Test<T> {

    @Override
    public T add(T t) {
        return null;
    }
}

注意
1.泛型接口定義的泛型的具體數(shù)據(jù)類型绿贞,是在實(shí)現(xiàn)接口的時候確定的。
2.當(dāng)使用泛型接口時橘原,沒有指定具體的泛型數(shù)據(jù)類型時籍铁,則默認(rèn)為Object類型。

泛型的上下限
限制上下限需要通配符:?

上限:? super 目標(biāo)類
下限:? extends 目標(biāo)類
1.泛型的上限

定義一個函數(shù)可以接收任意數(shù)據(jù)類型的集合對象趾断,要求接收的集合對象只能存儲Integer或者其父類類型的數(shù)據(jù)拒名。

public static<T> Collection<? super Integer> test(Collection<? super Integer> t) {

        return t;
}
2.泛型的下限

定義一個函數(shù)可以接收任意數(shù)據(jù)類型的集合對象,要求接收的集合對象只能存儲Number或者其子類類型數(shù)據(jù)芋酌。

public void test(Collection<? extends Number> collection) {

}
泛型的擦除轉(zhuǎn)換

泛型編譯之后就消失(擦除)增显。
當(dāng)把帶有泛型的集合賦給不帶泛型的集合,此時泛型就被擦除(手動擦除)隔嫡。

    ArrayList<Integer> arrayList = new ArrayList<>();
        ArrayList arrayList2 = new ArrayList<>();
        //泛型擦除
        arrayList2 = arrayList;
        arrayList2.add("Test");
        System.out.println(arrayList2);

枚舉

enum Demo {
    MAN, WOMAN;
}
枚舉應(yīng)用場景

如果存在多個數(shù)據(jù)選項(xiàng)甸怕,但每次只能選擇一個時,可以用枚舉腮恩。

枚舉注意細(xì)節(jié)

1.枚舉是一個特殊的類梢杭,枚舉值必須位于枚舉類的第一行。

2.枚舉類的構(gòu)造方法默認(rèn)的修飾符是private秸滴,自定義的構(gòu)造函數(shù)也要是private武契。

3.枚舉值默認(rèn)的修飾符是public static final,可以定義自己的成員變量與成員函數(shù)

4.枚舉值的數(shù)據(jù)類型是該枚舉值所屬類的類型,然后枚舉值是指向了本類的對象的咒唆。

5.枚舉類可以存在抽象方法届垫,但是枚舉值必須要實(shí)現(xiàn)抽象的方法。

 public static void main(String[] args) {
        Demo demo = Demo.MAN;
        demo.value = "測試數(shù)據(jù)";
        demo.run();
}

enum Demo {
    MAN("男") {
        @Override
        public void run() {
            System.out.println("男人疾跑:" + value);
        }
    }, WOMAN("女") {
        @Override
        public void run() {
            System.out.println("女生慢跑:" + value);
        }
    };

    String value;

    Demo(String value) {
        this.value = value;
    }

    public abstract void run();
}
enum EnumDemo {
    MAN, WOMAN
}

public class Main {

    public static void main(String[] args) {
        demo(EnumDemo.MAN);
    }

    public static void demo(EnumDemo demo) {
        switch (demo) {
            case MAN:
                System.out.println("男");
                break;

            case WOMAN:
                System.out.println("女");
                break;
        }
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末全释,一起剝皮案震驚了整個濱河市装处,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌浸船,老刑警劉巖妄迁,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異李命,居然都是意外死亡登淘,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門封字,熙熙樓的掌柜王于貴愁眉苦臉地迎上來黔州,“玉大人,你說我怎么就攤上這事阔籽×髌蓿” “怎么了?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵仿耽,是天一觀的道長合冀。 經(jīng)常有香客問我,道長项贺,這世上最難降的妖魔是什么君躺? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮开缎,結(jié)果婚禮上棕叫,老公的妹妹穿的比我還像新娘。我一直安慰自己奕删,他們只是感情好俺泣,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著完残,像睡著了一般伏钠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谨设,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天熟掂,我揣著相機(jī)與錄音,去河邊找鬼扎拣。 笑死赴肚,一個胖子當(dāng)著我的面吹牛素跺,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播誉券,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼指厌,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了踊跟?” 一聲冷哼從身側(cè)響起踩验,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琴锭,沒想到半個月后晰甚,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡决帖,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蓖捶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片地回。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖俊鱼,靈堂內(nèi)的尸體忽然破棺而出刻像,到底是詐尸還是另有隱情,我是刑警寧澤并闲,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布细睡,位于F島的核電站,受9級特大地震影響帝火,放射性物質(zhì)發(fā)生泄漏溜徙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一犀填、第九天 我趴在偏房一處隱蔽的房頂上張望蠢壹。 院中可真熱鬧,春花似錦九巡、人聲如沸图贸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽疏日。三九已至,卻和暖如春撒汉,著一層夾襖步出監(jiān)牢的瞬間沟优,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工神凑, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留净神,地道東北人何吝。 一個月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像鹃唯,于是被迫代替她去往敵國和親爱榕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

推薦閱讀更多精彩內(nèi)容

  • object 變量可指向任何類的實(shí)例坡慌,這讓你能夠創(chuàng)建可對任何數(shù)據(jù)類型進(jìn)程處理的類黔酥。然而,這種方法存在幾個嚴(yán)重的問題...
    CarlDonitz閱讀 908評論 0 5
  • 第8章 泛型 通常情況的類和函數(shù)洪橘,我們只需要使用具體的類型即可:要么是基本類型跪者,要么是自定義的類。但是在集合類的場...
    光劍書架上的書閱讀 2,143評論 6 10
  • 開發(fā)人員在使用泛型的時候熄求,很容易根據(jù)自己的直覺而犯一些錯誤渣玲。比如一個方法如果接收List作為形式參數(shù),那么如果嘗試...
    時待吾閱讀 1,042評論 0 3
  • 一瑟押、基本概念和用法 在Java語言處于還沒有出現(xiàn)泛型的版本時搀捷,只能通過Object是所有類型的父類和類型強(qiáng)制轉(zhuǎn)換兩...
    developerzjy閱讀 4,397評論 3 47
  • 一花一世界一葉一知秋, 男人與女人交織其中. 為著便士有人沉淪于, 隱沒的黑暗. 有人向著月亮, 走出洞穴又走進(jìn)又...
    與自己賽跑的人閱讀 280評論 0 0