來源:Java在設計開始之前不是通用的,直到它在JDK 1.5中被引入。 Java泛型是透過擦除實現的。你知道什麼是擦除嗎?往下看。
概念:常規類別和方法只能使用特定類型;基本類型或自訂類別。如果要編寫可應用於多種類型程式碼的程式碼,這種嚴格的限制將對程式碼施加很大的約束。泛型實現了參數化類型的概念,使程式碼能夠應用於多個類型。當泛型在程式語言中出現時,它們的最初目的是希望類別和方法具有廣泛的表達能力。
【推薦學習:java影片教學】
出現泛型有很多原因,其中最重要的原因之一是建立容器類別。我們暫時不指定類型,但決定以後要使用什麼類型。為了實現這個目標,需要在類別名稱後面使用類型參數,並用尖括號括起來。然後,當使用此類時,將用實際類型替換此類型的參數。在下面的範例中,t是類型參數。程式碼如下:
然而,在許多原始程式碼中,有些泛型類別具有多個泛型參數,例如Java。 UTIL功能。雙功能,有三種類型的參數t,u,r。
泛型方法使方法獨立於類別。在編寫通用程式碼時,基本的指導原則是盡可能使用通用方法。這意味著,如果可以對整個類別使用泛型方法而不是泛型方法,那麼可以使用泛型方法,因為它們可以使事情更清楚。此外,對於靜態方法,不能存取泛型類別的類型參數,因此如果靜態方法需要使用泛化功能,則必須將它們變為泛型方法。
當我讀了Java程式設計思想的一般章節中的「被刪除的奧秘」部分時,我特別頭暈,然後當我向下看時,我變得越來越困惑。尤其是當你看邊界和通配符的時候,它有點令人困惑。首先看看什麼是擦除。在泛型程式碼中,有關泛型參數類型的資訊不可用。 Java泛型是透過擦除實現的,這意味著當使用泛型時,任何特定的類型都會被擦除,而您所知道的唯一一件事就是使用物件。由於Java最初沒有引入泛型,所以它被設計成與舊版本的JDK相容。 ErAcess是Java通用實作之間的折衷。因此,當您運行時,list
Java中的泛型,當編譯時,T表示一種類型,如果沒有指定邊界,它就等於對象。我們可以使用extends關鍵字為泛型指定邊界。為了能夠呼叫f(),我們可以在給定泛型類別邊界的情況下幫助泛型類,告訴編譯器必須接受邊界後面的類型。這裡使用擴充關鍵字。將上述程式碼變更為
Java 泛型的特性在許多開源的框架上是用的非常多的。這快需要深入的理解一下,我想隨著敲程式碼的年限上,應該到了後面會有不一樣得理解吧。現在透過書上能夠知道,理解得就只有這麼多了。
本文來自 java入門 欄目,歡迎學習!
以上是詳解Java泛型(知識點總結)的詳細內容。更多資訊請關注PHP中文網其他相關文章!