Re: Type safety ... References to generic type Enumeration<E> should be parameterized



Hendrik Maryns wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ian Wilson schreef:
In Eclipse, this code produces a warning at "foo.nextElement()" saying

"Type safety: The method nextElement() belongs to the raw type
Enumeration. References to generic type Enumeration<E> should be
parameterized"

void listDefaults() {
UIDefaults uiDefaults = UIManager.getDefaults();
Enumeration foo = uiDefaults.keys();
while (foo.hasMoreElements()) {
Object key = foo.nextElement();
Object val = uiDefaults.get(key);
System.out.println("[" + key.toString() + "]:["
+ (null != val ? val.toString() : "(null)") + "]");
}
}

How should I fix this?

By doing as it says:

Enumeration<Object> foo = uiDefaults.keys()

Or have a look at the API of UIDefaults, to see whether it is some more
specific Enumeration (I suppose not).

It's not. UIDefaults is a subclass of Hashtable<Object,Object> (yet another example of inappropriate use of inheritance instead of composition).

--
Dale King
.



Relevant Pages