Coo*_*ans 255
你绝对可以打开枚举.从Java教程发布的示例.
public enum Day {
SUNDAY, MONDAY, TUESDAY, WEDNESDAY,
THURSDAY, FRIDAY, SATURDAY
}
public class EnumTest {
Day day;
public EnumTest(Day day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY:
System.out.println("Mondays are bad.");
break;
case FRIDAY:
System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY:
System.out.println("Weekends are best.");
break;
default:
System.out.println("Midweek days are so-so.");
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Gre*_*tes 75
实际上你可以switch使用enums,但是switch在StringJava 7之前你不能使用.你可以考虑使用Java enums而不是显式的多态方法调度switch.请注意,enums是Java中的对象,而不仅仅是intC/C++中的符号.你可以在一个enum类型上有一个方法,然后代替编写一个switch,只需调用方法 - 一行代码:完成!
enum MyEnum {
SOME_ENUM_CONSTANT {
@Override
public void method() {
System.out.println("first enum constant behavior!");
}
},
ANOTHER_ENUM_CONSTANT {
@Override
public void method() {
System.out.println("second enum constant behavior!");
}
}; // note the semi-colon after the final constant, not just a comma!
public abstract void method(); // could also be in an interface that MyEnum implements
}
void aMethodSomewhere(final MyEnum e) {
doSomeStuff();
e.method(); // here is where the switch would be, now it's one line of code!
doSomeOtherStuff();
}
Run Code Online (Sandbox Code Playgroud)
aio*_*obe 22
打开枚举工作正常.
enum MyEnum { CONST_ONE, CONST_TWO }
class Test {
public static void main(String[] args) {
MyEnum e = MyEnum.CONST_ONE;
switch (e) {
case CONST_ONE: System.out.println(1); break;
case CONST_TWO: System.out.println(2); break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
字符串的开关在Java 7中实现.
阅读这里的所有新功能.
bra*_*yne 14
您可能在切换案例中错误地使用了枚举.与CoolBeans的上述示例相比,您可能会执行以下操作:
switch(day) {
case Day.MONDAY:
// Something..
break;
case Day.FRIDAY:
// Something friday
break;
}
Run Code Online (Sandbox Code Playgroud)
确保使用实际的枚举值而不是EnumType.EnumValue
Eclipse指出了这个错误.
| 归档时间: |
|
| 查看次数: |
354349 次 |
| 最近记录: |