パラメータにジェネリックマップを期待するメソッドがあります:
public void someMethod(Map<String,?> mapParameter){
...
}
このメソッドを呼び出す私の実装では、「?」に複数の可能な値があります。一般的なパラメータ。たとえば、「?」の値が 整数になり、その他は文字列、ブール値になります。
私の値を受け入れ、「someMethod」メソッドに渡される完全に汎用的なHashMapを宣言する方法が存在しますか?
クラス「IntegerValueDTO」に値を抽出し、文字列値で値を受け取り、特定のタイプに変換しようとしました。作成されたこの「valueDTO」クラスはすべて、「defaultValue」から拡張するために配置しました。これで、私はこのマップを実装しました:
Map<String, ? extends DefaultValue> map = new HashMap<String, ? extends DefaultValue>();
しかし、メソッドsomeMethodは私のアプリケーションからのものではなく、フレームワークからのものであり、実装をチャンスにするためのコントロールがありません。そして、私のマップをそのように宣言すると、彼はのマップを生成し"Map<String, some instance of DefaultValue>"
、フレームワークがクラッシュします。
どんな助けでも大歓迎です。