建立泛型物件 自動型別推斷的菱形語法

2021-09-16 19:40:27 字數 429 閱讀 5198

2. 建立泛型物件——自動型別推斷的菱形語法:

1) 首先,定義泛型引用一定要使用尖括號指定型別引數,例如:listlist、map等,其中的string、integer之類的就是型別引數;

2) 其次,使用構造器構造泛型物件的時候可以指定型別引數也可以不指定,例如:

i. listlist = new list();  // 這當然是對的

ii. listlist = new list<>();  // 這樣對,因為list的型別引數可以從引用推斷出!

!!但是引用的型別引數是一定要加的,否則無法推斷;

3) 由於<>很像菱形,因此上面的語法也叫做菱形語法;

!!至於為什麼不對,這會在泛型原理的章節中詳細介紹,這裡先記住這樣寫不對就行了!

!反正就是乙個原則,泛型引用是一定要指定型別引數的!!

5) 示例:

泛型之型別引數的型別推斷

編譯器判斷型別方法的實際型別引數的過程稱為型別推斷,型別推斷是相對於知覺推斷的,其實現方法是一種非常複雜的過程.根據呼叫泛型方法時實際傳遞的引數型別或返回的型別來推斷,具體規則如下 swap new string 2 2,3 static void swap e a,int i,int j add ...

c 判斷 泛型t 型別 C 泛型方法的型別推斷

這裡所謂的 泛型方法的型別推斷 指的是根據已有的方法實參的型別,推斷出泛型方法的型別實參。例如乙個泛型方法 void method t args 如果我給出方法實參型別是 int,那麼希望能夠推斷出 t int。或者舉個複雜點的例子,對於下面的泛型方法定義 void method ilist a,p...

Java泛型方法定義及泛型型別推斷

泛型的推斷 test public void test3 在返回型別前加上 public t add t x,t y 傳入乙個陣列,交換其中的兩項 test public void test4 1,2 for string s result book bs swap new book,0,2 for...