类型转换

发泡胶飞

我有

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

j

有两种可能的解决方案:

  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);
        }
    }
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章