[Voting on JavaDesignFlaws page.]
C and C++ have "enum." Now Java does too. So why aren't you happy?
Shouldn't this link to the CeePlusPlusDesignFlaws? page, instead? :-)
Yes, I know you can define a class with "static const final" definitions of valid values, but that still doesn't give you an enumerated type -- the values aren't instances of the class, now are they?
See EnumeratedTypesInJava for a solution which is actually more useful than C/C++'s "enum".
I've seen this gripe a million times and you know, I've been working in Java for over two years now (with C++ before) and have not yet missed typedefs or enums... Just goes to show you can't be all things to all people.
Discussion of the advantages of EnumeratedTypes moved to that page.
Threadlet about whether Java is an OO language moved to ObjectOrientedProgramming.
Enumerated types have been added to Java 1.5, and yes they are proper class instances which means that you can do proper polymorphism.