代码之家  ›  专栏  ›  技术社区  ›  Deepboy

如何在2个类中使用enum并在属性文件[duplicate]中存储Java特定类型

  •  -2
  • Deepboy  · 技术社区  · 6 年前

    问题1)我的类中有一个switch语句,它检查reminderInterval的值。我已经在枚举中定义了值。

    //Enum defined in a separate file, not inside the classes SetupSchedule,ExecuteSchedule 
    
    public enum ValidInterval {
    HOUR, HALFHOUR, QUARTERHOUR, TENMINUTE, FIVEMINUTE 
    }
    

    public class SetupSchedule {
    public void setUpUserSchedule(String reminderInterval, boolean setSnoozeOff, boolean interruptIndicator) {
        switch(reminderInterval) {
            case HOUR :     someAction();
                            break;
            case HALFHOUR :someAction();
                             break;                     
            }
        }
    }
    
    public class ExecuteSchedule {
    public void executeUserSchedule(String reminderInterval, boolean setSnoozeOff, boolean interruptIndicator) {
        switch(reminderInterval) {
            case HOUR :     someAction();
                            break;
            case HALFHOUR :someAction();
                             break;                     
            }
        }
    }
    

    用户请求结构:

    public class UserSchedule {
        @Id
        private String id;
    
        @EnumValidator(enumClazz = ValidInterval.class)
        @NotBlank
        private String frequencyType;
    
        @NotBlank
        private boolean allowSnooze;
    
        @NotBlank
        private boolean interruptInd;
    }
    

    错误:Eclipse显示了一个错误,HOUR,HALFHOUR不能解析为变量。

    注: 这不是一个重复的问题 如何使用枚举,因为枚举存储在单独的文件中;不是在同一个类中使用的。我寻找这个问题的答案,但找不到。

    1 回复  |  直到 6 年前
        1
  •  -1
  •   Bonfra    6 年前

    您需要先写入枚举的名称,然后写入变量:

    public class SetupSchedule {
        switch(reminderInterval) {
            case ValidInterval.HOUR:
                someAction();
                break;
            case ValidInterval.HALFHOUR:
                someAction();
                break;                     
        }
    }