方法声明中的 Java 泛型 2 组 <K,V> 或 <T> [重复]
Posted
技术标签:
【中文标题】方法声明中的 Java 泛型 2 组 <K,V> 或 <T> [重复]【英文标题】:Java generics 2 set of <K,V> or <T> in method declaration [duplicate] 【发布时间】:2017-11-06 22:37:14 【问题描述】:我一直在看到以下方法声明,但我不明白 <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)
【问题讨论】:
这两者的含义与没有泛型时的含义完全相同。 docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.htmldocs.oracle.com/javase/tutorial/java/javaOO/classvars.html 泛型参数 (<K, V>
/<T>
) 与方法修饰符 (public
/static
) 分开,后者与返回值 (int
/@987654334) 分开@)。
【参考方案1】:
回想一下,在 Java 中,所有方法都必须在一个类中,所以这个方法将在某种类中,比如说“Clazz”。
public
表示该方法可以从类外部访问,任何人都可以访问。
static
表示调用该方法时,不需要从特定的对象调用,而是直接使用类名调用即可。因此,您可以通过键入 Clazz.countGreaterThan
来调用 countGreaterThen,而不是使用创建为 Clazz
实例的特定对象
【讨论】:
以上是关于方法声明中的 Java 泛型 2 组 <K,V> 或 <T> [重复]的主要内容,如果未能解决你的问题,请参考以下文章