泛型方法使用詳解

2021-08-08 00:09:42 字數 1217 閱讀 7332

泛型的類代表類的宣告用到型別引數;泛型的方法代表方法的宣告特徵用到型別引數。

在方法的型別引數有幾種不同的運用方式。

例項如下:

public class arraylistextends abstractlist...

public t get(t o)

}

add方法返回boolean型別,get方法返回型別與類一致,引數型別均與類一致。即,泛型方法擁有不同於類的型別。

例項1如下:

public void takething(arraylistlist)
例項2如下:

public  t get(t e)
例項一中,指明了t型別為anamal子類,例項2未指明型別,即可以為任何一種型別!預設為object。例項3如下圖所示:

class的作用就是指明泛型的具體型別對應的class型別,而class型別的變數c,可以用來建立泛型類的例項物件。

**呼叫泛型方法語法格式如下: **

說明一下,定義泛型方法時,必須在返回值前邊加乙個,來宣告這是乙個泛型方法,持有乙個泛型t,然後才可以用泛型t作為方法的返回值。

上圖示例中,引數class=user.class;

為什麼要用變數c來建立物件呢?

既然是泛型方法,就代表著我們不知道具體的型別是什麼,也不知道構造方法如何,因此沒有辦法去new乙個物件,但可以利用變數c的newinstance方法去建立物件,也就是利用反射建立物件。

為什麼要使用泛型方法呢?

因為泛型類要在例項化的時候就指明型別,如果想換一種型別,不得不重新new一次,可能不夠靈活;而泛型方法可以在呼叫的時候指明型別,更加靈活。

**ps:泛型介面和泛型抽象類同樣不可以例項化。 **

Java泛型二 泛型類 泛型介面 泛型方法詳解

單引數泛型類 public class rectangle public t getwidth public void setwidth t width public t getheight public void setheight t height public static void main...

Java泛型使用詳解

一 泛型介面 1 第一種 在子類的定義上也宣告泛型型別。package com.xieke.generics.impl.demo1 inte ce info class infoimplimplements info public void setvar t var override public ...

泛型 泛型類 泛型方法 泛型擦除

1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...