public class Test4 {
//枚举的比较
public static void main(String[] args) {
/*
* 将OpConstant里面的TURN_LEFT, TURN_RIGHT, SHOOT里面传递过来的字符串转换为一个枚举
*/
enumCopareTo(OpConstant.valueOf("SHOOT")); //valueOf()将枚举OpConstant里面的字符串转换为一个枚举
System.out.printl"-----------------------------");
for(OpConstant c : OpConstant.values()) {
//引用C语言中的输出:第一个参数(%d:按十进制输出);第二个参数(%s:按字符串输出);第三个参数(%n:回车)
System.out.printf("%d,,, %s%n", c.ordinal(), c);
//System.out.printf("%d, %s\n", c.ordinal(), c); //这样回车也可以
//其他System.out.printf的格式请参照:https://blog.csdn.net/qq_32776913/article/details/74331791
* 【说明】查看JDK Doc 的ordinal()方法的说明(了解一下就行):返回一个枚举常量的顺序,第一个常量分配0,后面就是1,2,3,4...
* 一般用在复杂的EnumSet和EnumMap里面。
*/
}
/*
* 将传递过来的枚举值与OpConstant中的每一个值进行比较
*/
public static void enumCopareTo(OpConstant constant){
System.out.println(constant);
for(OpConstant c : OpConstant.values()){
System.out.println(constant.compareTo(c)); //compareTo看源码: return self.ordinal - other.ordinal;
}
/**
* 结果:
* SHOOT
2
1
0
*
* 【说明】:2表示SHOOT与枚举参数里面 TURN_LEFT 比较排后面两位,1表示SHOOT与枚举参数里面 TURN_RIGTH 比较排后面1位,2表示SHOOT与枚举参数里面 与自己SHOOT 比较并列。
*/
}
}
//枚举的比较
public static void main(String[] args) {
/*
* 将OpConstant里面的TURN_LEFT, TURN_RIGHT, SHOOT里面传递过来的字符串转换为一个枚举
*/
enumCopareTo(OpConstant.valueOf("SHOOT")); //valueOf()将枚举OpConstant里面的字符串转换为一个枚举
System.out.printl"-----------------------------");
for(OpConstant c : OpConstant.values()) {
//引用C语言中的输出:第一个参数(%d:按十进制输出);第二个参数(%s:按字符串输出);第三个参数(%n:回车)
System.out.printf("%d,,, %s%n", c.ordinal(), c);
//System.out.printf("%d, %s\n", c.ordinal(), c); //这样回车也可以
//其他System.out.printf的格式请参照:https://blog.csdn.net/qq_32776913/article/details/74331791
}
结果:
SHOOT
2
1
0
-----------------------------
0,,, TURN_LEFT
1,,, TURN_RIGHT
2,,, SHOOT
* 【说明】查看JDK Doc 的ordinal()方法的说明(了解一下就行):返回一个枚举常量的顺序,第一个常量分配0,后面就是1,2,3,4...
* 一般用在复杂的EnumSet和EnumMap里面。
*/
}
/*
* 将传递过来的枚举值与OpConstant中的每一个值进行比较
*/
public static void enumCopareTo(OpConstant constant){
System.out.println(constant);
for(OpConstant c : OpConstant.values()){
System.out.println(constant.compareTo(c)); //compareTo看源码: return self.ordinal - other.ordinal;
}
/**
* 结果:
* SHOOT
2
1
0
*
* 【说明】:2表示SHOOT与枚举参数里面 TURN_LEFT 比较排后面两位,1表示SHOOT与枚举参数里面 TURN_RIGTH 比较排后面1位,2表示SHOOT与枚举参数里面 与自己SHOOT 比较并列。
*/
}
}