Re: an enum question - how to convert enum type to a string?
www wrote:
Hi,
I am new to enum. Suppose I have the following enum
packcage A.B.C
This line will not compile, due to the misspelling and lack of semicolon.
Conventionally, packages are named with all lower-case letters.
enum CarModel
{
BMW, HONDA, FORD
}
In my program, I need to get the string "CarModel" from enum CarModel.
Is there a way to do it?
Of course.
Note: I am not talking about getting string "BMW", "HONDA" etc. I know
CarModel.BMW.toString() will give me "BMW".
I also prefer to get "CarModel" string, not "A.B.C.CarModel".
It's rather bizarre to use a class name; I've seen it done in production code
many times where it causes fragility, inefficiency and bugs. Part of the
problem is that use of the class name violates a kind of programming G??delian
incompleteness. It breaks type safety when used carelessly, as I've often
seen it used, by passing class relationships around through strings rather
than types. Some uses I've seen require particular naming relationships
between types for them to work together, though actual object-oriented
programming would have worked more easily and more flexibly.
Regardless, you do it the usual way, with
<http://java.sun.com/javase/6/docs/api/java/lang/Class.html#getSimpleName()>
--
Lew