欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Java常用工具類—泛型

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

一、泛型概述

1、背景

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

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

2、泛型的使用

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

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

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

其它錯誤的例子:

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

4、泛型內(nèi)容

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

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

泛型作為參數(shù)時,如果參數(shù)為多個子類,可以使用(List<? extends 父類> xxx)。這種情況下,在調(diào)用方法時,就可以傳遞父類及其子類作為參數(shù)了。
還有一個:(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;
	}
	
	//測試
	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());
	}
}

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

四、自定義泛型方法

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

注意:

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

 五、泛型總結(jié)

1、為什么使用泛型

不用進行強制類型轉(zhuǎn)換,避免運行時異常的安全隱患

2、變量聲明的類型必須匹配傳遞給實際對象的類型。

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常用工具類—泛型詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • feign遠程調(diào)用無法傳遞對象屬性405的問題

    feign遠程調(diào)用無法傳遞對象屬性405的問題

    這篇文章主要介紹了feign遠程調(diào)用無法傳遞對象屬性405的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java 二分法檢索算法代碼實現(xiàn)詳解

    Java 二分法檢索算法代碼實現(xiàn)詳解

    這篇文章主要介紹了Java 二分法檢索算法代碼實現(xiàn)詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • IntelliJ IDEA中查看當(dāng)前類的所有繼承關(guān)系圖

    IntelliJ IDEA中查看當(dāng)前類的所有繼承關(guān)系圖

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA中查看當(dāng)前類的所有繼承關(guān)系圖,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • SpringBean和Controller實現(xiàn)動態(tài)注冊與注銷過程詳細講解

    SpringBean和Controller實現(xiàn)動態(tài)注冊與注銷過程詳細講解

    這篇文章主要介紹了SpringBean和Controller實現(xiàn)動態(tài)注冊與注銷過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-02-02
  • 實現(xiàn)一個基于Servlet的hello world程序詳解步驟

    實現(xiàn)一個基于Servlet的hello world程序詳解步驟

    Java Servlet 是運行在 Web 服務(wù)器或應(yīng)用服務(wù)器上的程序,它是作為來自 Web 瀏覽器或其他 HTTP 客戶端的請求和 HTTP 服務(wù)器上的數(shù)據(jù)庫或應(yīng)用程序之間的中間層
    2022-02-02
  • SpringBoot3.0整合chatGPT的完整步驟

    SpringBoot3.0整合chatGPT的完整步驟

    ChatGPT是OpenAI推出的一個語言模型系統(tǒng),它能夠?qū)崟r回答用戶提問,包括聊天、糾正語法錯誤,甚至是寫代碼、寫劇本等,由于可玩性很高,迅速在全球范圍內(nèi)風(fēng)靡起來,下面這篇文章主要給大家介紹了關(guān)于SpringBoot3.0整合chatGPT的完整步驟,需要的朋友可以參考下
    2022-12-12
  • Java中PriorityQueue實現(xiàn)最小堆和最大堆的用法

    Java中PriorityQueue實現(xiàn)最小堆和最大堆的用法

    很多時候都會遇到PriorityQueue,本文主要介紹了Java中PriorityQueue實現(xiàn)最小堆和最大堆的用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Java反射根據(jù)不同方法名動態(tài)調(diào)用不同的方法(實例)

    Java反射根據(jù)不同方法名動態(tài)調(diào)用不同的方法(實例)

    下面小編就為大家?guī)硪黄狫ava反射根據(jù)不同方法名動態(tài)調(diào)用不同的方法(實例)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • SpringBoot集成JmsTemplate(隊列模式和主題模式)及xml和JavaConfig配置詳解

    SpringBoot集成JmsTemplate(隊列模式和主題模式)及xml和JavaConfig配置詳解

    這篇文章主要介紹了SpringBoot集成JmsTemplate(隊列模式和主題模式)及xml和JavaConfig配置詳解,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java中如何用Stream分組并求各組數(shù)量

    Java中如何用Stream分組并求各組數(shù)量

    這篇文章主要給大家介紹了關(guān)于Java中如何用Stream分組并求各組數(shù)量的相關(guān)資料,文中通過實例代碼,對大家學(xué)習(xí)或者Java具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07

最新評論