Re: java.util.Properties extending from HashMap<Object, Object> instead
of HashMap<String, String>
Zig wrote:
On Fri, 04 Apr 2008 17:30:12 -0400, Patricia Shanahan <pats@acm.org> wrote:
The thing I don't understand is why, before 1.5, Properties extended
anything other than Object. Extending Hashtable or HashMap before
generics created features, such as the ability to add a mapping from an
Integer to a Float, that make no sense for Properties.
Well, it does make sense that a Properties object is assignable to
java.util.Map (or it's pre 1.2 counterpart: java.util.Dictionary): it is
a collection of key+value pairs, and you would expect a way to
interrogate keys, emptiness, etc.
If you assign a Properties to any Map variable, you will lose some of the
functionality of the Properties, namely the default values and the load/store
methods. Properties has behaviors that are core to its functionality and not
present in its supertypes. When you upcast a Properties, you lose everything
Properties-like about it.
Rakesh wrote:
I was curious if there is a reason why java.util.Properties extends
from HashMap<Object, Object> instead of HashMap<String, String>
(seems more intuitive to me).
Properties does not descend from HashMap at all.
<http://java.sun.com/javase/6/docs/api/java/util/Properties.html>
--
Lew