先上一段能编译通过的程序:enumDirection{EAST,WEST,SOUTH,NORTH;}publicclassSimpleEnum{publicstaticvoidmain(Stringargs[]){Directiond=Direction.EAST;switch(d){caseEAST:System.out.println("Dragon");break;caseWEST:System.out.println("Tiger");break;caseSOUTH:System.out.println("Peacock");break;caseNORTH:System.out.println("Tortoise");}}}我的疑问是:为什么程序中对enum常量的引用不一致?在main函数中,Directiond=Direction.EAST;如果写成Directiond=EAST;javac会报错,说找不到符号EAST.而switchcase的代码块中必须直接跟枚举常量,如果把caseEAST:改成caseDirection.EAST:,javac会报告说:枚举switchcase标签必须为枚举常量的非限定名称。这种形式的不一致让人有些不爽。为什么会有这种不一致呢?
拉莫斯之舞
相关分类