【问题标题】:java enum << operatorjava枚举<<运算符
【发布时间】:2014-03-26 18:55:23
【问题描述】:

我们期望像下面这样的枚举类有什么样的值。对 感到困惑

public enum FrequencyEnum {

    DAILY       (1), 
    WEEKLY      (1 << 1), 
    BI_WEEKLY   (1 << 2), 
    MONTHLY     (1 << 3), 


    private short id;


    private FrequencyEnum(int id) {
        this.id = (short) id;
    }

    public short getId() {
        return id;
    }

    public void setId(short id) {
        this.id = id;
    }

    public static FrequencyEnum valueOf(short id) {
        for (FrequencyEnum status : FrequencyEnum.values()) {
            if (status.getId() == id) {
                return status;
            }
        }
        return null;
    }

}

【问题讨论】:

  • 查看Java教程Bitwise and Bit Shift Operators
  • 你到底在问什么?
  • 如果你查看上面评论中的教程,你会看到你的枚举是如何初始化的:DAILY (1), WEEKLY (2), BI_WEEKLY (4), MONTHLY (8),

标签: java enums


【解决方案1】:

&lt;&lt; 是左移运算符。在这种情况下,您将各种整数值传递给枚举构造函数(如 kiruwka 所述)。

见:

http://en.wikipedia.org/wiki/Bitwise_operation http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 1970-01-01
    • 2011-02-04
    • 2018-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 2013-03-05
    相关资源
    最近更新 更多