で動的バインディング...ここ は私のクラスの概要は次のとおりです。iはダイナミックparameticタイプ(リスト)をバインドする必要がありますが、私は右のそれを得るいけないジェネリック型
public abstract interface SettingsField<A> extends Window
その後、私はいくつかのクラスを持っていますSettingsFieldは実装しています
public class StringSettingsField implements SettingsField<String>
public class MapSettingsField<K, V> implements SettingsField<Map<K, V>>
最初は本当シンプルですが、2番目は少しトリッキーです例えば...ので、私はSettingsFiledsを返し工場を作りたいです。動的バインディングを使用して、そこに配置するオブジェクトごとに適切なSettingsWindowを取得します。 私は次のgetFieldメソッドをオーバーロードします。 その非常に簡単文字列のため: (もなるだろうか?)exampeあるキーは常に文字列であることを
public SettingsField<Map<? extends String, ?>> getField(Map<? extends String, ?> x){
return new MapSettingsField();
}
...
public SettingsField<String> getField(String x){
return new StringSettingsField();
}
が、マップのために、私はいくつかの問題を持っているが、今コンパイラは私にそれを与える。
MapSettingsFieldは生の型です。ジェネリック型MapSettingsFieldへの参照は、パラメータ化する必要があります
ここで私はこれを行うことができますか?問題はちょうど使用されていますMapは有効ではありません、Javaのfジェネリックの問題のために(ListはAのサブタイプでもListは暗黙のサブタイプではありません)
ヒント?前もって感謝します!
最初の例では、MapSettingsFieldタイプの引数の数が正しくないため、コンパイル時エラーが発生します。;引数
私はあなたの第二の解決策は、私は静的なタイプが安全であるので最高だと思う!ありがとう! – reox