On 11/30/2011 04:50 PM, Alan Bateman wrote:
On 30/11/2011 15:06, Rémi Forax wrote:
Note that you can use clazz.asSubclass(Enum.class) instead of casting
to the raw type Class,
you will still have a warning but you will be not the one that have
introduced a raw type :)
Your mail arrived just a few minutes after I did the hg push. The only
thing about using asSubClass(Enum.class) is that it might not be as
obvious to the reader. As you say it would result in a warning too but
thanks for going through these changes too.
-Alan
Not a big deal.
If we were before the release of tiger, we can:
- fix the Foo.class syntax to return Class<Foo<?>>
- fix object.getClass() to also returns a wildcard
- fix Enum.valueOf to take an Class<? extends T> instead of a Class<T>
- fix the compiler/spec because Enum<?> should be an <T extends Enum<T>>
Enum<T>
so too many changes and most of them are incompatible with the current
state of the language.
The only way I see to solve the problem now is to add a method in
java.lang.Class
named getEnumConstant() that takes a String an return an Enum<?>.
Rémi