Retornar um mapa não modificável
UsingCollections.unmodifiableMap(...)
, Estou tentando retornar uma visualização não modificável de um mapa. Digamos que eu tenho o seguinte método,
public final Map<Foo, Bar> getMap(){
...
return Collections.unmodifiableMap(map);
}
Por que é legal em outro lugar fazer o seguinte,
Map<Foo, Bar> map = getMap();
map.put(...);
Isto não lança umUnsupportedOperationException
como eu pensei que seria. Alguém pode explicar isso ou sugerir como eu posso devolver com sucesso um mapa verdadeiramente inalterável?