マップから値を取得するための簡単なユーティリティ関数を作成しようとしています。新しい値クラスを作成して地図に配置することができない場合は、新しい地図エントリを取得または作成する方法
マップのキーと値のクラスを実行時に取得することは非常に困難ですが、私が思いつくことができる最高のものは、次の行にはひどいものです。
良い方法がありますか?
private Object getOrCreate(Map<Object, Object> map, Object key, Class<?> mapValueClass) {
Object value = map.get(key);
if (value == null) {
Constructor<?> con = mapValueClass.getConstructor(key.getClass());
value = con.newInstance(key);
map.put(key, value);
}
return value;
}
確かにそれは十分です。ポインタありがとう。 – Ian