0

我是 Java 新手,我无法理解两者之间的区别

public static <V> void meth()

public static void meth()

Q1。<V> 作为参数是什么意思?这是一个泛型类型,这是否意味着该方法返回/采用 V 类型的参数?

这是我的代码:

public static <V> void meth(){
     Map<K, V> m = new HashMap<K, V>();
}

然后编译器显示错误:

" 将类型参数'k' 添加到 meth()<V> 中"
Q2.这是什么意思?

4

2 回答 2

1

您正在使用泛型类型 ( Map<K, V>and HashMap<K, V>),K但未声明或称为类型。所以你要么需要创建一个类,要么给方法K添加一个类型参数K,这样编译器就知道K在使用它时应该是什么。

于 2012-07-08T09:40:30.907 回答
1

您正在使用泛型。

K 和 V 在您的示例中不是定义的类型。它们用于创建对不同数据类型行为相同的泛型类。

如果您想了解更多关于它的信息,您可以去那里。

http://en.wikipedia.org/wiki/Generics_in_Java

简而言之,你可能有类似的东西。

  • List# 将包含任何作为对象的对象
  • List<Integer>将是一个整数列表。
  • List<String>将是一个字符串列表

因此K, V,您可以使用类似Map<Integer, String>...

在泛型中,您放置的参数是类名而不是变量。

于 2012-07-08T09:46:06.740 回答