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