搜尋
首頁JavaJava入門詳解Java泛型(知識點總結)
詳解Java泛型(知識點總結)Nov 26, 2019 pm 05:04 PM
java泛型

詳解Java泛型(知識點總結)

概念

來源:Java在設計開始之前不是通用的,直到它在JDK 1.5中被引入。 Java泛型是透過擦除實現的。你知道什麼是擦除嗎?往下看。

概念:常規類別和方法只能使用特定類型;基本類型或自訂類別。如果要編寫可應用於多種類型程式碼的程式碼,這種嚴格的限制將對程式碼施加很大的約束。泛型實現了參數化類型的概念,使程式碼能夠應用於多個類型。當泛型在程式語言中出現時,它們的最初目的是希望類別和方法具有廣泛的表達能力。

【推薦學習:java影片教學

簡單的泛型

出現泛型有很多原因,其中最重要的原因之一是建立容器類別。我們暫時不指定類型,但決定以後要使用什麼類型。為了實現這個目標,需要在類別名稱後面使用類型參數,並用尖括號括起來。然後,當使用此類時,將用實際類型替換此類型的參數。在下面的範例中,t是類型參數。程式碼如下:

然而,在許多原始程式碼中,有些泛型類別具有多個泛型參數,例如Java。 UTIL功能。雙功能,有三種類型的參數t,u,r。

泛型方法

泛型方法使方法獨立於類別。在編寫通用程式碼時,基本的指導原則是盡可能使用通用方法。這意味著,如果可以對整個類別使用泛型方法而不是泛型方法,那麼可以使用泛型方法,因為它們可以使事情更清楚。此外,對於靜態方法,不能存取泛型類別的類型參數,因此如果靜態方法需要使用泛化功能,則必須將它們變為泛型方法。

泛型的擦除

當我讀了Java程式設計思想的一般章節中的「被刪除的奧秘」部分時,我特別頭暈,然後當我向下看時,我變得越來越困惑。尤其是當你看邊界和通配符的時候,它有點令人困惑。首先看看什麼是擦除。在泛型程式碼中,有關泛型參數類型的資訊不可用。 Java泛型是透過擦除實現的,這意味著當使用泛型時,任何特定的類型都會被擦除,而您所知道的唯一一件事就是使用物件。由於Java最初沒有引入泛型,所以它被設計成與舊版本的JDK相容。 ErAcess是Java通用實作之間的折衷。因此,當您運行時,list與list相同。請注意,它正在運行,但在編譯時,list表示此字串類型的列表容器,list表示當前整數類型的列表容器。例如,來自Java程式設計思想的例子。

泛型的邊界

Java中的泛型,當編譯時,T表示一種類型,如果沒有指定邊界,它就等於對象。我們可以使用extends關鍵字為泛型指定邊界。為了能夠呼叫f(),我們可以在給定泛型類別邊界的情況下幫助泛型類,告訴編譯器必須接受邊界後面的類型。這裡使用擴充關鍵字。將上述程式碼變更為

總結

Java 泛型的特性在許多開源的框架上是用的非常多的。這快需要深入的理解一下,我想隨著敲程式碼的年限上,應該到了後面會有不一樣得理解吧。現在透過書上能夠知道,理解得就只有這麼多了。

本文來自 java入門 欄目,歡迎學習!

以上是詳解Java泛型(知識點總結)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:cnblogs。如有侵權,請聯絡admin@php.cn刪除
带你搞懂Java结构化数据处理开源库SPL带你搞懂Java结构化数据处理开源库SPLMay 24, 2022 pm 01:34 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于结构化数据处理开源库SPL的相关问题,下面就一起来看一下java下理想的结构化数据处理类库,希望对大家有帮助。

Java集合框架之PriorityQueue优先级队列Java集合框架之PriorityQueue优先级队列Jun 09, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于PriorityQueue优先级队列的相关知识,Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,下面一起来看一下,希望对大家有帮助。

完全掌握Java锁(图文解析)完全掌握Java锁(图文解析)Jun 14, 2022 am 11:47 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于java锁的相关问题,包括了独占锁、悲观锁、乐观锁、共享锁等等内容,下面一起来看一下,希望对大家有帮助。

一起聊聊Java多线程之线程安全问题一起聊聊Java多线程之线程安全问题Apr 21, 2022 pm 06:17 PM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于多线程的相关问题,包括了线程安装、线程加锁与线程不安全的原因、线程安全的标准类等等内容,希望对大家有帮助。

Java基础归纳之枚举Java基础归纳之枚举May 26, 2022 am 11:50 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于枚举的相关问题,包括了枚举的基本操作、集合类对枚举的支持等等内容,下面一起来看一下,希望对大家有帮助。

详细解析Java的this和super关键字详细解析Java的this和super关键字Apr 30, 2022 am 09:00 AM

本篇文章给大家带来了关于Java的相关知识,其中主要介绍了关于关键字中this和super的相关问题,以及他们的一些区别,下面一起来看一下,希望对大家有帮助。

Java数据结构之AVL树详解Java数据结构之AVL树详解Jun 01, 2022 am 11:39 AM

本篇文章给大家带来了关于java的相关知识,其中主要介绍了关于平衡二叉树(AVL树)的相关知识,AVL树本质上是带了平衡功能的二叉查找树,下面一起来看一下,希望对大家有帮助。

一文掌握Java8新特性Stream流的概念和使用一文掌握Java8新特性Stream流的概念和使用Jun 23, 2022 pm 12:03 PM

本篇文章给大家带来了关于Java的相关知识,其中主要整理了Stream流的概念和使用的相关问题,包括了Stream流的概念、Stream流的获取、Stream流的常用方法等等内容,下面一起来看一下,希望对大家有帮助。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版