2017-06-06 138 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