Proč java.util.Properties není bezpečný
Při vývoji javy v momentě, kdy nový java.util.Map nahradil starší java.util.Hashtable, již existovala třída java.util.Properties, který dědila z java.util.Hashtable, ta tehdy neměla metody put a putAll, které přinesl až interface java.util.Map. Jenomže v rámci sjednocení Collections frameworku byly i do java.util.Hashtable zavedeny metody z java.util.Map. A tedy se do java.util.Properties dostali metody put(Object key, Object value) a putAll(Map map). Takže nyní můžete vložit i do java.util.Properties (které má reprezentovat tabulku Stringů klíč — hodnota) i libovolné objekty. Na tento bezpečnostní problém upozorňuje i javadoc k java.util.Properties.
Jen tak na okraj, já samozřejmě nečtu javadoc k notoricky známým třídám, za což si sypu popel na hlavu, takže na tuto vlastnost mě upozornila až kniha Java efektivně — 57 zásad softwarového experta.
Související články
Související epizody CZ Podcastu
- #3 · Java 6 SE, Vývoj webových aplikací
Dagi a Filemon o novinkách v Javě 6 a webových frameworcích.
- #1 · Vývojová prostředí v Javě
První díl CZ Podcastu se věnuje vývojovým prostředím pro Javu.