我有
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
类型。)
答案 0 :(得分:2)
有两种可能的解决方案:
在方法上定义泛型类型:
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);
}
}
答案 1 :(得分:0)
你在“像这样的东西”下的建议会正常运作。只需使用它。