Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java enum elements with spaces?

Tags:

java

enums

Im working on java, I have created an enum as follows:

public enum myEnum {     india,     russian,     england,     north America } 

Above example gives errors while using space in the name of element (i.e. north America). Any suggestions how to resolve above issue?

like image 543
BSalunke Avatar asked Dec 05 '11 17:12

BSalunke


People also ask

Can enum values have spaces Java?

You can't put a space in the middle of an identifier. Doing so ends that identifier and the parser assumes whatever comes next is a valid token in that statement's context. There are few (if any) places that would be legal.

Can enum values have spaces?

Normally, the name of an enum in c# can't contain any special characters or spaces. There can be situations where we need to use friendly names for enums which have spaces in between. You will get syntax error since this is not the correct way of enum declaration.

Does enum always start at 0 C?

So yes, if you do not specify a start value, it will default to 0.

How do you measure enum size?

There are multiple ways to check the size of an enum type. Second, using object methods keys() , values() , entries() methods to get the array list of keys, values, and key-value multiple constants. These methods return the array of enum constants. using the length method on the array, prints the size.


1 Answers

You can't put a space in the middle of an identifier.

Doing so ends that identifier and the parser assumes whatever comes next is a valid token in that statement's context. There are few (if any) places that would be legal.

Conventional Java value names would be:

INDIA,         // Or  India, RUSSIA,        //     Russia, NORTH_AMERICA; //     NorthAmerica; 

An enum can have associated properties, like human-readable names, e.g.,

public enum CountryAndOneContinent {      INDIA("India"),     RUSSIA("Russia"),     NORTH_AMERICA("North America");      private String displayName;      CountryAndOneContinent(String displayName) {         this.displayName = displayName;     }      public String displayName() { return displayName; }      // Optionally and/or additionally, toString.     @Override public String toString() { return displayName; } } 

I'm ambivalent about using toString to provide presentation-layer representations.

I prefer methods communicate their purpose explicitly–it's more expressive and obvious.

toString is pretty generic, and allows only a single representation. Multiple output formats may be required depending on context, parameters, etc. which toString doesn't allow.

Advantages of toString include using default string operations on the object, and in this case, using valueOf to directly translate from the human-readable version to the enum value.

like image 150
Dave Newton Avatar answered Sep 19 '22 17:09

Dave Newton