Java – starts the enumeration as a value
•
Java
I want to declare enumeration variables as values How can I do this?
For example:
public enum CardSuit {
SPADE(0),HEART(1),DIAMOND(2),CLUB(3);
}
I can state this:
CardSuit s = CardSuit.SPADE;
I would also like to state:
CardSuit s = 1;
What is the way to do this? Is this even possible?
Solution
I think you want something like this,
public static enum CardSuit {
SPADE(0),CLUB(3);
int value;
CardSuit(int v) {
this.value = v;
}
public String toString() {
return this.name();
}
}
public static void main(String[] args) {
CardSuit s = CardSuit.values()[0];
System.out.println(s);
}
Output is
SPADE
edit
If you want to search by the specified value, you can do it with something like this –
public static enum CardSuit {
SPADE(0),DIAMOND(4),CLUB(2);
int value;
CardSuit(int v) {
this.value = v;
}
public String toString() {
return this.name();
}
public static CardSuit byValue(int value) {
for (CardSuit cs : CardSuit.values()) {
if (cs.value == value) {
return cs;
}
}
return null;
}
}
public static void main(String[] args) {
CardSuit s = CardSuit.byValue(2);
System.out.println(s);
}
Output is
CLUB
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
