最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Java常用工具類—泛型

 更新時(shí)間:2019年03月27日 09:41:10   作者:LSmurfs  
這篇文章主要介紹了Java常用工具類—泛型,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、泛型概述

1、背景

在Java中增加泛型之前,泛型程序設(shè)計(jì)使用繼承來實(shí)現(xiàn)的。
壞處:

需要進(jìn)行強(qiáng)制類型轉(zhuǎn)換
可向集合中添加任意類型的對(duì)象,存在風(fēng)險(xiǎn)

2、泛型的使用

List<String> list=new ArrayList<String>();

3、多態(tài)與泛型

class Animal{}
class Cat extends Animal{}
List<Animal> list=new ArrayList<Cat>(); //這是不允許的,變量聲明的類型必須匹配傳遞給實(shí)際對(duì)象的類型。

其它錯(cuò)誤的例子:

List<Object> list=new ArrayList<String>();
List<Number> number=new ArrayList<Integer>();

4、泛型內(nèi)容

  1. 泛型作為方法參數(shù)
  2. 自定義泛型類
  3. 自定義泛型方法

 二、泛型作為方法參數(shù)

泛型作為參數(shù)時(shí),如果參數(shù)為多個(gè)子類,可以使用(List<? extends 父類> xxx)。這種情況下,在調(diào)用方法時(shí),就可以傳遞父類及其子類作為參數(shù)了。
還有一個(gè):(List<? super 類> xxx)。這種情況下是指類及其超類(父類)。

三、自定義泛型

public class NumGeneric<T> {
	private T num;

	public NumGeneric() {
		
	}

	public NumGeneric(T num) {
		this.setNum(num);
	}

	public T getNum() {
		return num;
	}

	public void setNum(T num) {
		this.num = num;
	}
	
	//測(cè)試
	public static void main(String[] args) {
		NumGeneric<Integer> intNum = new NumGeneric<>();
		intNum.setNum(10);
		System.out.println("Integer:" + intNum.getNum());
		
		NumGeneric<Float> floatNum = new NumGeneric<>();
		floatNum.setNum(5.0f);
		System.out.println("Float:" + floatNum.getNum());
	}
}

泛型類的定義和使用,可以傳進(jìn)不同類的對(duì)象作為參數(shù)

四、自定義泛型方法

public <T extends Number> void printValue(T t) {
	System.out.println(t);
}

注意:

  1. 泛型方法不一定在泛型類里面
  2. <T>必須寫在修飾符和返回值類型之間。

 五、泛型總結(jié)

1、為什么使用泛型

不用進(jìn)行強(qiáng)制類型轉(zhuǎn)換,避免運(yùn)行時(shí)異常的安全隱患

2、變量聲明的類型必須匹配傳遞給實(shí)際對(duì)象的類型。

3、泛型作為方法參數(shù)

public void sellGoods(List<? extends Goods> goods)

表示可以是Goods及Goods類的子類作為泛型的參數(shù)類型,extends后面除了跟類的名字,還可以跟接口的名字。

4、public void sellGoods(List<? super Goods> goods)

表示可以是Goods類以及其超類作為泛型的參數(shù)類型

5、自定義泛型類

6、自定義泛型方法

以上所述是小編給大家介紹的Java常用工具類—泛型詳解整合,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Java中Queue的poll()和remove()區(qū)別詳解

    Java中Queue的poll()和remove()區(qū)別詳解

    這篇文章主要介紹了Java中Queue的poll()和remove()區(qū)別詳解,Queue接口提供了許多方法,其中poll()和remove()是兩個(gè)常用的方法,它們的區(qū)別在于,當(dāng)隊(duì)列為空時(shí),poll()方法返回null,而remove()方法會(huì)拋出,需要的朋友可以參考下
    2023-07-07
  • springBoot 項(xiàng)目排除數(shù)據(jù)庫(kù)啟動(dòng)方式

    springBoot 項(xiàng)目排除數(shù)據(jù)庫(kù)啟動(dòng)方式

    這篇文章主要介紹了springBoot 項(xiàng)目排除數(shù)據(jù)庫(kù)啟動(dòng)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • Java通過MyBatis框架對(duì)MySQL數(shù)據(jù)進(jìn)行增刪查改的基本方法

    Java通過MyBatis框架對(duì)MySQL數(shù)據(jù)進(jìn)行增刪查改的基本方法

    MyBatis框架由Java的JDBC API進(jìn)一步封裝而來,在操作數(shù)據(jù)庫(kù)方面效果拔群,接下來我們就一起來看看Java通過MyBatis框架對(duì)MySQL數(shù)據(jù)進(jìn)行增刪查改的基本方法:
    2016-06-06
  • Java集合之同步容器詳解

    Java集合之同步容器詳解

    這篇文章主要為大家詳細(xì)介紹了Java集合之同步容器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • Spring Cloud Zuul路由規(guī)則動(dòng)態(tài)更新解析

    Spring Cloud Zuul路由規(guī)則動(dòng)態(tài)更新解析

    這篇文章主要介紹了Spring Cloud Zuul路由規(guī)則動(dòng)態(tài)更新解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Java適配器模式定義與用法示例

    Java適配器模式定義與用法示例

    這篇文章主要介紹了Java適配器模式定義與用法,結(jié)合具體實(shí)例形式分析了java適配器模式的功能、組成、定義、使用方法及適配程度等,需要的朋友可以參考下
    2017-06-06
  • 詳解Spring中bean實(shí)例化的三種方式

    詳解Spring中bean實(shí)例化的三種方式

    本篇文章主要介紹了詳解Spring中bean實(shí)例化的三種方式,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-04-04
  • 解決阿里代碼規(guī)范檢測(cè)中方法缺少javadoc注釋的問題

    解決阿里代碼規(guī)范檢測(cè)中方法缺少javadoc注釋的問題

    這篇文章主要介紹了解決阿里代碼規(guī)范檢測(cè)中方法缺少javadoc注釋的問題,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Spring Bean生命周期之Bean的注冊(cè)詳解

    Spring Bean生命周期之Bean的注冊(cè)詳解

    這篇文章主要為大家詳細(xì)介紹了Spring Bean生命周期之Bean的注冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 基于RocketMQ推拉模式詳解

    基于RocketMQ推拉模式詳解

    這篇文章主要介紹了RocketMQ推拉模式的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評(píng)論

临沧市| 额济纳旗| 类乌齐县| 靖西县| 兰坪| 睢宁县| 江油市| 西昌市| 尼勒克县| 太原市| 鲁山县| 连江县| 光山县| 盱眙县| 灵丘县| 渭源县| 左贡县| 芦山县| 木兰县| 河北区| 金昌市| 措美县| 山东省| 牙克石市| 丹凤县| 原阳县| 乐清市| 赞皇县| 邓州市| 墨脱县| 肥东县| 南雄市| 肇东市| 上蔡县| 盈江县| 九龙城区| 祁阳县| 祥云县| 温泉县| 万安县| 镇雄县|