1樓:匿名使用者
泛型(generic type 或者 generics)是對 java 語言的型別系統的一種擴充套件,以支援建立可以按型別進行引數化的類。可以把型別引數看作是使用引數化型別時指定的型別的一個佔位符,就像方法的形式引數是執行時傳遞的值的佔位符一樣。
定義泛型方法語法格式如下:
定義泛型方法時,必須在返回值前邊加一個,來宣告這是一個泛型方法,持有一個泛型t,然後才可以用泛型t作為方法的返回值。
class的作用就是指明泛型的具體型別,而class型別的變數c,可以用來建立泛型類的物件。
java泛型的作用,舉例說明!
2樓:匿名使用者
簡言之,泛型是為了避免類轉換異常的發生,使程式操作更安全,舉例:
1、宣告泛
型:class point
public void setvar(t var)}2、使用point類將var的型別設定成整數public class test
}3、執行:60
分析:使用泛型強制型別為某型別,比如上面為integer,在使用setvar()方法時如果引數不是integer(如string),程式就會報錯,提示輸入非法。當然你認為也可以不用泛型,比如將point定義如下:
class point1
public void setvar(object var)}此時,test程式依然可以執行,但是如果將test改動如下:
public class test
}程式編寫正常,不會報錯,但到了執行才提示異常。而如果上面是應用泛型,在寫下system.out.
println(p.getvar() * 2);直接就會在寫程式時提示錯誤!
這樣就達到了使用泛型的目的——避免類轉換異常的發生,使程式操作更安全。
希望能幫到你!
3樓:南芷兮膠
舉個例子來說
你的錢包裡你規定只裝錢
那麼你去出來的想也不想就是錢,管他是¥還是$不用轉換的-->都是錢(確定裡面是什麼)
不用泛型的話 就不規定放什麼
那麼你取出來的東西就不一定是錢,這樣你就要轉換了,那要是石頭的話你要轉換成錢就錯了(不確定裡面到底是什麼),推薦你看看動力節點的教程,裡面有詳細的關於案例介紹。
java泛型有什麼作用
4樓:硪丨曖戀
java 泛型是java se 1.5的新特性,泛型的本質是引數化型別,也就是說所操作的資料型別被指定為一個引數。這種引數型別可以用在類、介面和方法的建立中,分別稱為泛型類、泛型介面、泛型方法。
泛型(generic type 或者 generics)是對 java 語言的型別系統的一種擴充套件,以支援建立可以按型別進行引數化的類。可以把型別引數看作是使用引數化型別時指定的型別的一個佔位符,就像方法的形式引數是執行時傳遞的值的佔位符一樣。
可以在集合框架(collection framework)中看到泛型的動機。例如,map 類允許您向一個 map 新增任意類的物件,即使最常見的情況是在給定對映(map)中儲存某個特定型別(比如 string)的物件。
因為 map.get() 被定義為返回 object,所以一般必須將 map.get() 的結果強制型別轉換為期望的型別,如下面的**所示:
map m = new hashmap();
m.put("key", "blarg");
string s = (string) m.get("key");
要讓程式通過編譯,必須將 get() 的結果強制型別轉換為 string,並且希望結果真的是一個 string。但是有可能某人已經在該對映中儲存了不是 string 的東西,這樣的話,上面的**將會丟擲 classcastexception。
理想情況下,您可能會得出這樣一個觀點,即 m 是一個 map,它將 string 鍵對映到 string 值。這可以讓您消除**中的強制型別轉換,同時獲得一個附加的型別檢查層,該檢查層可以防止有人將錯誤型別的鍵或值儲存在集合中。這就是泛型所做的工作。
泛型的好處
java 語言中引入泛型是一個較大的功能增強。不僅語言、型別系統和編譯器有了較大的變化,以支援泛型,而且類庫也進行了大翻修,所以許多重要的類,比如集合框架,都已經成為泛型化的了。
這帶來了很多好處:
1,型別安全。 泛型的主要目標是提高 java 程式的型別安全。通過知道使用泛型定義的變數的型別限制,編譯器可以在一個高得多的程度上驗證型別假設。
沒有泛型,這些假設就只存在於程式設計師的頭腦中(或者如果幸運的話,還存在於**註釋中)。
2,消除強制型別轉換。 泛型的一個附帶好處是,消除源**中的許多強制型別轉換。這使得**更加可讀,並且減少了出錯機會。
3,潛在的效能收益。 泛型為較大的優化帶來可能。在泛型的初始實現中,編譯器將強制型別轉換(沒有泛型的話,程式設計師會指定這些強制型別轉換)插入生成的位元組碼中。
但是更多型別資訊可用於編譯器這一事實,為未來版本的 jvm 的優化帶來可能。由於泛型的實現方式,支援泛型(幾乎)不需要 jvm 或類檔案更改。所有工作都在編譯器中完成,編譯器生成類似於沒有泛型(和強制型別轉換)時所寫的**,只是更能確保型別安全而已。
java語言引入泛型的好處是安全簡單。泛型的好處是在編譯的時候檢查型別安全,並且所有的強制轉換都是自動和隱式的,提高**的重用率。
泛型在使用中還有一些規則和限制:
1、泛型的型別引數只能是類型別(包括自定義類),不能是簡單型別。
2、同一種泛型可以對應多個版本(因為引數型別是不確定的),不同版本的泛型類例項是不相容的。
3、泛型的型別引數可以有多個。
4、泛型的引數型別可以使用extends語句,例如。習慣上成為「有界型別」。
5、泛型的引數型別還可以是萬用字元型別。例如class<?> classtype = class.forname(java.lang.string);
泛 型還有介面、方法等等,內容很多,需要花費一番功夫才能理解掌握並熟練應用。在此給出我曾經瞭解泛型時候寫出的兩個例子(根據看的印象寫的),實現同樣的 功能,一個使用了泛型,一個沒有使用,通過對比,可以很快學會泛型的應用,學會這個基本上學會了泛型70%的內容。
5樓:匿名使用者
採用泛型可以減少你對資料型別的要求,需要什麼型別再強轉成什麼型別
java中在定義泛型泛型方法是方法名前加上泛型有什麼作用,也就是方法前的
6樓:劉黃銀瀛
static void show(collectionc)//這個泛型方法中定義了一個t型別形參,這個t型別形參可以在該方法內當成普通型別使用。這裡無需顯示傳入實際型別引數,無論呼叫該方法時傳入什麼型別的值,系統都可以判斷出最直接的型別引數。舉個例子給你看可能會更加明白:
import java.util.*;
public class 泛型test
static void show2(collection c)public static void main(string args)}
7樓:匿名使用者
首先要說明的是,代表泛型,但不止,還有,,等,都是用到了java中的泛型。一般使用來宣告型別持有者名稱,自定義泛型類時,類持有者名稱可以使用t(type)。如果是容器的元素可以使用e(element),若鍵值匹配可以用k(key)和v(value)等,若是<?
>,則是預設是允許object及其下的子類,也就是java的所有物件了。
所以說,如果是字每a,b,c,d...定義的,就是泛型,這裡t只是名字上的意義而已t---type,e----element,k----key, v----value,如果是?定義的,就是普通的object或者其子類。
舉例說明:
set表示 集合裡 是 t類的例項
list表示 集合裡 是 e類的例項
list<?> 表示 集合裡的物件型別不確定,未指定
list 同 list<?> 是一樣的。
泛型的作用:
1、用泛型:
listlist=new arraylist();
t t=list.get(0);
2、不用泛型:
list list=new arraylist();
t t=(t)list.get(0);
相信你已經看出:
a、用泛型只是確定了集合內的元素的型別,但卻是在編譯時確定了元素的型別再取出來時已經不再需要強轉,增強程式可讀性,穩定性和效率
b、不用泛型時,如果是裝入集合操作,那麼元素都被當做object對待,失去自己的型別,那麼從集合中取出來時,往往需要轉型,效率低,容易產生錯誤
8樓:神帝天雲
也就是範圍的意思,這樣可以提高他的使用效率和使用速度
java中在定義泛型泛型方法是方法名前加上泛型有什麼作用?
9樓:劉黃銀瀛
static void show(collectionc)//這個泛型方法中定義了一個t型別形參,這個t型別形參可以在該方法內當成普通型別使用。這裡無需顯示傳入實際型別引數,無論呼叫該方法時傳入什麼型別的值,系統都可以判斷出最直接的型別引數。舉個例子給你看可能會更加明白:
import java.util.*;
public class 泛型test
static void show2(collection c)public static void main(string args)}
java中的泛型是幹嘛的,起到什麼作用??什麼情況下才能用到泛型??
10樓:20締造者
泛型:規定了此集合中元素的型別。
例如:arraylistarr = new arraylist();
這樣就建立了一個包含整數的 arraylist 物件。
如果要自己定義泛型類,就用如下形式:
class mycollection
尖括號中的型別可以有限制,例如你需要讓 mycollection 中的型別都具有可比性,可以用如下格式:
class mycollection
11樓:小溼底
限制使用物件型別,起到程式編譯時限制作用
常用3500漢字如何確定的,中學生常用的3500個漢字是什麼?
常用字就是書寫現代漢語經常要用到的字 常用字表的研製工作,始於1928年 語體文應用字彙 的編制.1952年教育部公佈了 常用字表 該表選頂的2000個常用字一直是掃盲的標準.1988年1月,國家語言文字工作委員會和國家教育委員會制定的 現代漢語常用字表 正式頒佈.其中選定常用字2500個,次常用字...
列出園林景觀中常用管道的型別,簡述其施工工藝
園林管道的施工一般採用地埋方式.對管道的維修和安裝建議使用給水用pe或者ppr給水管道.如果成本相對較低的話,可以使用pvc給水管道.一般來說,管道的施工工藝沒有太大的區別.pe ppr管道採用熱熔連線.pvc採用專用膠水腐蝕粘接.但是膠水粘接存在很多問題.建議你採用前者.四川省川匯塑膠 園林綠化工...
不常用的漢字有哪些,簡單不常用的字有哪些, 30個最好
內容來自使用者 胡建華234 覬覦j y 齟齬j y 囹圄l ngy 魍魎w ngli ng紈絝w nk 鱖魚gu y 耄耋m odi 饕餮t oti 痤瘡cu chu ng踟躇ch ch 倥傯k n z n 另 倥侗念k ngd ng。彳亍ch ch 諂媚ch nm i女紅n g ng古同 工 佝...