我已經聲明了這個枚舉類:public enum class RoleName {
Worker,
Boss
}我想在開關/外殼中使用它switch (requestRole.getName()) {
case RoleName.Worker.name():但我有這個編譯錯誤constant expression required如果我刪除,class我會收到此 IntelliJ IDEA 錯誤:'class' keyword is expected after 'enum;
1 回答

阿晨1998
TA貢獻2037條經驗 獲得超6個贊
這里有兩個錯誤:
枚舉的定義不應該包含
class
在其中。根據經驗,常量應為大寫。enum?RoleName?{ ????WORKER, ????BOSS; }
RoleName.Worker.name()
不允許作為case
表達式,因為它不是常量表達式。您可以轉換requestRole.getName()
為 aRoleName
并將其用作表達式switch
。switch?(RoleName.valueOf(requestRole.getName()))?{ ????case?WORKER:?/*?...?*/?break; }
添加回答
舉報
0/150
提交
取消