-1

我有

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中没有给出类型。)

4

2 回答 2

2

对此有两种可能的解决方案:

  1. 在方法上定义泛型类型:

    public class MyClass{
        private HashMap<Key<?>, Val<?>> myMap;
        public <T> Val<T> getValue(Key<T> key){
            return (Val<T>) myMap.get(key) 
        }
    
  2. 在类上定义泛型类型:

    public class MyClass<T> {
        private HashMap<Key<?>, Val<?>> myMap;
        public Val<T> getValue(Key<T> key) {
           return (Val<T>) myMap.get(key);
        }
    }
    
于 2013-07-20T23:05:33.717 回答
0

您在“类似这样的东西”下的建议将正常工作。就用它吧。

于 2013-07-20T22:23:04.603 回答