Help enumerations in Java
•
Java
Is it possible for the enumeration to change its value (internally)? It may be easier to understand the meaning of the code:
enum Rate {
VeryBad(1),Bad(2),Average(3),Good(4),Excellent(5);
private int rate;
private Rate(int rate) {
this.rate = rate;
}
public void increaterating() {
//is it possible to make the enum variable increase?
//this is,if right Now this enum has as value Average,after calling this
//method to have it change to Good?
}
}
This is what I want to achieve:
Rate rate = Rate.Average; System.out.println(rate); //prints Average; rate.increaserating(); System.out.println(rate); //prints Good
thank you
Solution
Yes You can simply call
rate = Rate.Good;
For this particular case But I think what you really want is the succession function
Here you are:
public class EnumTest extends TestCase {
private enum X {
A,B,C;
public X successor() {
return values()[(ordinal() + 1) % values().length];
}
};
public void testSuccessor() throws Exception {
assertEquals(X.B,X.A.successor());
assertEquals(X.C,X.B.successor());
assertEquals(X.A,X.C.successor());
}
}
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
二维码
