0
我已經看到下面的方法聲明,但我不明白如何使用<K, V>
和<T>
。Java泛型2套<K,V>或<T>方法聲明
public <K, V>
在這個方法中做了什麼?
public <K, V> void add(K k, V v)
static <T>
在這個方法中做什麼?
public static <T> int countGreaterThan(T[] anArray, T elem)
我已經看到下面的方法聲明,但我不明白如何使用<K, V>
和<T>
。Java泛型2套<K,V>或<T>方法聲明
public <K, V>
在這個方法中做了什麼?
public <K, V> void add(K k, V v)
static <T>
在這個方法中做什麼?
public static <T> int countGreaterThan(T[] anArray, T elem)
回想一下,在Java中,所有的方法必須是一個類裏面,所以這個方法會在某種類的,可以說「clazz中」。
public
表示此方法可以從任何人以外的類訪問。
static
表明當你調用這個方法時,你不需要從一個特定的對象調用它,而是你可以通過使用類名來調用它。因此,您可以通過輸入Clazz.countGreaterThan
來代替使用創建爲Clazz
的實例創建的特定對象,然後打電話給countGreater。這兩個含義與沒有泛型的含義完全相同。 https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html –
通用參數(' ''/'')與方法修飾符('public' /'static')是分開的,它們與返回值('int' /'void')是分開的。 –
Rogue