泛型的使用

2021-08-26 02:53:32 字數 1463 閱讀 3115

泛型是什麼,為什麼使用泛型:

泛型是指宣告時不指定型別,使用時指定型別,用編譯時用來宣告型別,使用時指定型別。這就意味著意味著編寫的**可以被不同型別的物件所重用。

在集合中如果使用object型別,那麼在使用過程中我們需要進行強制轉換型別,並且在編譯過程中不能夠進行型別轉換檢查異常。這樣就會容易在執行過程中產生異常。而使用泛型則在使用時指定詳細的型別,那麼編譯器就在編譯過程中進行型別檢查異常,同時也不再需要我們手動的強制型別轉換,大大減少了出現錯誤的情況,提高了**的重用率。

泛型的使用:

泛型只能適用於引用型別不能使用於基本型別。靜態方法的返回值和靜態屬性不能使用泛型。

泛型方法,在宣告時,泛型需要加在修飾符後面返回型別前面。

public static void  run(t t){

t name;

泛型類的繼承與泛型的擦除:

public class father{

t name;

public  void  run (t t){

1子類在宣告時指定泛型的具體型別

class child  extends father (){

string name;

@override

public void run (string t){

2子類使用泛型,父類擦除泛型

class child extends father{

object name;

@override

public void run(object t){

其實這時候泛型已經與父類的泛型無關,此時父類的泛型指定為object然後子類自己使用泛型。以下皆是這種情況。

3子類使用泛型,父類也使用泛型。

class child extendes father{

t name;

@override

public void  run (t t){

這時候要求子類泛型個數大於等於父類泛型,字母要求父類有的子類必須要有。位置不定。

4子類和父類同時擦除

class child exteds faher{

object name;

@override

public void run (object t){

介面的實現類的泛型與繼承關係一致。

注意:擦除統一使用object型別但是他不完全等同於object型別 他不會型別檢查。

public static void main(string args){

fatherf=new father();

father  f1=new father();

f1.name=new string("ssss");//1

f.name=new string("ssss");//2

//  這樣在使用過程中出現問題。1不會出現問題2會提示型別轉化出錯。這時候會發現,即使擦除了泛型預設指定object但是不會進行型別檢查。

泛型的使用

unit unit1 inte ce uses winapi.windows,winapi.messages,system.sysutils,system.variants,system.classes,vcl.graphics,vcl.controls,vcl.forms,vcl.dialogs ...

泛型的使用

目前這個專案使用的jsp servlet j abean,沒有使用其它的框架。在處理資料庫的時候,多張表就對應多個dao,而每個dao都有增刪改查的方法,顯得很冗餘。於是寫了乙個commondao,其中包含了其他dao裡面共有的一些方法。然後讓其他的dao類繼承commondao,servlet中直...

泛型的使用

型別引數t 泛型的型別引數t可以看作是乙個佔位符,它不是一種型別,它僅代表了某種可能的型別。型別引數t可以在使用時用任何型別來代替。型別引數t的命名準則如下 使用描述性名稱命名泛型型別引數,除非單個字母名稱完全可以讓人了解它表示的含義,而描述性名稱不會有更多的意義。public inte ce is...