【问题标题】:An enum switch case label枚举开关盒标签
【发布时间】:2022-12-28 16:30:33
【问题描述】:
            LocalDate currentdate = LocalDate.now();
            Month currentMonth = currentdate.getMonth();
            FrequencyEntity frequencyEntity = null;
            switch (currentMonth) {
                case Month.JANUARY: // Here.
                    frequencyEntity = FrequencyEntity.builder().january(frequency).build();
                    
            }

我注释为“此处”的行导致我的 IDE 显示:“枚举开关大小写标签必须是枚举常量的非限定名称。”。

我能想到的唯一可能的解决方案是将月份转换为字符串。但这可能不是一个正确的解决方案。

你能帮我找到一个更优雅的方式吗?

【问题讨论】:

  • 试试 JANUARY

标签: java


【解决方案1】:

注意不合格错误消息中的一部分。这并不是说您不能将枚举值用作案例标签——而是说您不能包含枚举名称。代码应该是:

switch (currentMonth) {
    case JANUARY:
        frequencyEntity = FrequencyEntity.builder().january(frequency).build();
        break;
}

【讨论】:

    猜你喜欢
    • 2017-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多