-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

これには、次の 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 に答える