私はクラスFourByFourBoard
がGameBoard
に拡張されています。私は、次のフィールドを定義しますジェネリックでJavaのコレクションに適用できない引数を渡すエラー
mGameTypeToKeysMap.put(Game.FOUR_BY_FOUR, mFourByFourBoardKeys);
しかし、私はこの取得::私のコンストラクタで
private Map<Integer,List<Key<? extends GameBoard>>> mGameTypeToKeysMap = new Hashtable<Integer,List<Key<? extends GameBoard>>>();
private List<Key<FourByFourBoard>> mFourByFourBoardKeys = new ArrayList<Key<FourByFourBoard>>();
を、私は呼び出そう
タイプのメソッド
put(Integer, List<Key<? extends GameBoard>>)
Map<Integer,List<Key<? extends GameBoard>>>
ではありませんが 引数に該当します(int, List<Key<FourByFourBoard>>)
私は何をしようとしているのか、別のアプローチを使用することができますが、コードを少し見てから、なぜこれが機能しないのか分かりません。
私がしようとした場合::
Key<GameBoard> a = mFourByFourBoardKeys.get(0);
私が手:
型の不一致を:から変換できません。この問題は、私が思ったよりも簡単かもしれません
EDIT
Key<FourByFourBoard>
〜Key<GameBoard>
にもかかわらず:
GameBoard someBoard = new FourByFourBoard();
は合法です。これはまだジェネリックの質問ですが、コレクションの部分は重要ではありませんでした。私の頭はまだ少し回転しています。最初のリストにあなただけA
インスタンスを追加することができ、第二に、あなたが両方A
とB
インスタンスを追加することができますので、
KeyはObjectifyのクラスです。 http://objectify-appengine.googlecode.com/svn/trunk/javadoc/com/googlecode/objectify/Key.html –