2017-06-06 58 views
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) 
+5

的實例創建的特定對象,然後打電話給countGreater。這兩個含義與沒有泛型的含義完全相同。 https://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html https://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html –

+0

通用參數(' ''/'')與方法修飾符('public' /'static')是分開的,它們與返回值('int' /'void')是分開的。 – Rogue

回答

1

回想一下,在Java中,所有的方法必須是一個類裏面,所以這個方法會在某種類的,可以說「clazz中」。

public表示此方法可以從任何人以外的類訪問。

static表明當你調用這個方法時,你不需要從一個特定的對象調用它,而是你可以通過使用類名來調用它。因此,您可以通過輸入Clazz.countGreaterThan來代替使用創建爲Clazz