【发布时间】:2021-03-02 20:34:31
【问题描述】:
在 Java 中可以有一个字节值而不是 int 值的枚举?
public enum PacketTypes {
REQUEST_CO_SERVER, ACCEPTANCE, REFUSAL, REQUEST_CO_USER, PUBLIC_MSG, PRIVATE_MSG
}
【问题讨论】:
-
“使用字节值而不是 int 值”是什么意思?
Enums 既没有byte- 也没有int- 值。 --- 这听起来像XY problem。 -
enum 工作起来很像一个类,你可以给它添加字段和方法。类似于:
enum PacketType { REQUEST_CO_SERVER((byte)10), ... ; private final byte code; private PacketType(byte code) { this.code = code; } public byte getCode() { return code; } } -
定义自定义构造函数为每个枚举分配字节值。