小编Raj*_*mar的帖子

从代表某些工作日的 ENUM 中获取 ENUM 值的好方法是什么

ENUM只有 3 个常量。基于 flag, named weekend, ENUM.values() 应该返回 3 或 2 个常量。

public enum Weekday { 
    SUNDAY, MONDAY, TUESDAY;
}

public Weekday[] getDays() {
    boolean weekend = true;
    if (weekend){
        return Weekday.values() // this will reurn SUNDAY, MONDAY, TUESDAY
    } else { // when weekend is false
         return Weekday.values() // it should return on MONDAY, TUESDAY
      }
}
Run Code Online (Sandbox Code Playgroud)

请提出建议,实现这一目标的合理好方法是什么。我可以使用以下代码实现它。不幸的是,公关审查员似乎对此并不满意。你能提出更好的方法吗?

我的解决方案。

 EnumMap<Weekday, Integer> days= new EnumMap<>(Weekday.class);
    days.put(Weekday.MONDAY, 1);
    days.put(Weekday.TUESDAY, 2);

    return days.keySet().toArray(new Weekday[0]); // this returns MONDAY and …
Run Code Online (Sandbox Code Playgroud)

java

4
推荐指数
2
解决办法
370
查看次数

标签 统计

java ×1