java - 如何在 2 个类中使用枚举并将 Java 特定类型存储在属性文件中
问题描述
我正在构建一个应用程序来安排每 60 分钟、30 分钟、15 分钟等一次提醒。用户选择提醒间隔(60 分钟、30 分钟等)
问题 1) 我的班级中有一个 switch 语句,用于检查提醒间隔的值。我已经在枚举中定义了值。
//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 无法解析为变量的错误。
注意:这不是关于如何使用枚举的重复问题,因为枚举存储在单独的文件中;不在使用它的同一类中。我搜索了这个问题的答案,但找不到。
请不要标记为重复。
解决方案
您需要编写枚举的名称,然后是变量:
public class SetupSchedule {
switch(reminderInterval) {
case ValidInterval.HOUR:
someAction();
break;
case ValidInterval.HALFHOUR:
someAction();
break;
}
}
您还需要将此开关插入到您不能将其留在类中的方法中
推荐阅读
- c# - c# 程序如果由 jenkins 执行,则无法获取我的 IP 地址
- java - 在开始新活动之前等待 HttpRequest 完成
- php - 插件激活后自动创建一个带有古腾堡 HTML 块的页面
- c++ - 我已经包含了一个 .h 文件,我似乎得到了一个“未定义的错误引用”
- netsuite - 在 Netsuite 中 - 如何将一个国家/地区移至列表顶部?
- jshint - 如何安装 JSHint
- java - 如何在鼠标监听器中添加参数
- python - 有没有一种简单的方法来添加进度条/计数器,我可以在其中添加一条线来经常增加它 - 不定时
- haskell - Haskell:查找涉及地图的表达式的类型
- ibm-cloud - 如何将您的私有 API 连接到 Watson 助手?