我有
private HashMap<Key<?>, Val<?>> myMap;
在此映射下,指定key<T>
始终是val<T>
(相同T
)。我想创建一个使用此信息并自动为我提供一个转换为给定类型的值的函数。是否有可能?像这样的东西:
public class MyClass{
private HashMap<Key<?>, Val<?>> myMap;
public Val<T> getValue(Key<T> key) {
return (Val<T>) myMap.get(key)
}
(类T
中没有给出类型。)
有两种可能的解决方案:
在方法上定义通用类型:
public class MyClass{
private HashMap<Key<?>, Val<?>> myMap;
public <T> Val<T> getValue(Key<T> key){
return (Val<T>) myMap.get(key)
}
在类上定义泛型类型:
public class MyClass<T> {
private HashMap<Key<?>, Val<?>> myMap;
public Val<T> getValue(Key<T> key) {
return (Val<T>) myMap.get(key);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句