自定義泛型方法

2021-09-26 03:40:56 字數 1498 閱讀 4844

不是說方法使用了介面或者類的泛型就叫泛型方法

比如下面的這個collection中的方法就不是泛型方法,而是普通方法

boolean add(e e);
這個方法是泛型方法:

t toarray(t a);
泛型方法是說這個方法不確定放什麼型別的結構

collection< e >,介面宣告處用的是e,用e的位置一定不是泛型方法,泛型方法是額外的有新的標識,和定義時的那個標識沒關係,不是同乙個。泛型方法所屬的類或者介面是不是帶泛型是無所謂的

比如order中的這三個方法都不是泛型方法

public class order

public order(string ordername,int orderid,t ordert)

public string getordername()

public void setordername(string ordername)

public int getorderid()

public void setorderid(int orderid)

public t getordert()

public void setordert(t ordert)

@override

public string tostring() ';

}}

public listcopyfromarraytolist(e arr)
上面這麼做編譯器會誤認為有乙個類叫做e,而不會把e看成泛型引數,而現在e是變數,呼叫的時候才會確定

要這麼做才會識別為泛型引數:

public listcopyfromarraytolist(e arr)
//泛型方法:在方法**現了泛型的結構,泛型引數與類的泛型引數沒有任何關係

//形參放陣列,把陣列當中的元素放到list當中,返回list

//陣列型別是具體的某種型別

public listcopyfromarraytolist(e arr)

return list;

}}public class test02;

//泛型方法在呼叫時指明泛型引數的型別

listlist = order.copyfromarraytolist(arr);//是由我們放的陣列的型別決定的

system.out.println(list);//[1,2,3,4]

}}

泛型方法可以是static的,即可以宣告為靜態的,原因:泛型引數是在呼叫方法時確定的,並非在例項化類時確定。因為e是在呼叫的時候確定的,不管是物件調的還是類調的,呼叫的時候確定型別即可

public static listcopyfromarraytolist(e arr)

return list;

}

自定義類使用泛型and方法使用泛型

使用泛型的自定義類,泛型可以使用任意的資料型別,在建立物件的時候確定是什麼資料型別,建立物件的時候不使用泛型,那就預設是object型別 格式 package cn.zhuobo.day10.aboutgeneric public class classgeneric public classgen...

C 自定義泛型

using system using system.collections.generic using system.text namespace customgenericcollection public car public class sportscar car 其他方法 public cl...

自定義java泛型

自定義泛型 泛型介面,泛型實現類,泛型方法 泛型介面 package genericity public inte ce box泛型實現類 package genericity public class boximpimplements box override public e get int i...