先上一段能編譯通過的程序: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標簽必須為枚舉常量的非限定名稱。這種形式的不一致讓人有些不爽。為什么會有這種不一致呢?
關于java枚舉類型的疑問
慕慕森
2019-04-07 09:38:43