Мне в основном нужна слегка измененная версия HashMap
, где всякий раз, когда значение читается или записывается, оно должно быть преобразовано. До сих пор я пробовал следующее:
public class MyMap implements Map<String, Object> {
private HashMap<String, MyType> map;
public Object get(Object key) {
return map.get(key).getValue();
}
public Object put(String key, Object value) {
return map.put(key, MyType.wrap(value)).getValue();
}
... all other methods of the Map interface are handled by map
}
Я надеялся, что это все, что мне нужно было сделать, но я борюсь с этими двумя методами:
Set<Entry<String,Object>> entrySet()
Collection<Object> values()
Те, кого я не могу просто переслать на карту, так как значения должны быть преобразованы одно за другим. Конечно, я мог бы просто скопировать реализацию из HashMap и изменить ее в соответствии со своими потребностями, но это казалось довольно уродливым решением, и перед тем, как сделать это, я хотел убедиться, что я не пропускаю гораздо более приятное решение.
Есть ли лучший способ?