sum*_*dha -1 java generics collections
我想编写一个方法,它将Map作为参数,可以包含任何对象作为其值.我试图使用泛型实现它,但我无法实现它.
下面是我到目前为止尝试过的代码.这个代码作为两种方法: genericTest,我试图实现一个通用的解决方案 nonGenericTest,这是我实际上想要使用通用解决方案,但是没有使用泛型实现.基本上,第二种方法是我想要转换为泛型的方法.
我究竟做错了什么?
import java.util.Iterator;
import java.util.Map;
public class Test {
//V cannot be resolve to a type
public void genericTest(Map<String, V> params) {
}
public void nonGenericTest(Map<String, Object> params) {
Iterator<String> it = params.keySet().iterator();
while (it.hasNext()) {
String key = it.next();
Object value = params.get(key);
if(value instanceof String){
String val1=(String) value;
// do something
}else if(value instanceof Integer){
Integer val1 = (Integer) value;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到编译器错误,如代码中所示.
你有两个选择:
引入V作为类型参数的类.
public class Test<V>
Run Code Online (Sandbox Code Playgroud)引入V作为类型参数到该功能.
public <V> void genericTest(Map<String, V> params)
Run Code Online (Sandbox Code Playgroud)