Java~通过套接字连接发送枚举

Bas*_*saa 6 java sockets enums asynchronous tcp

通过套接字发送枚举值的最佳方法是什么?有没有办法将枚举值转换为int,反之亦然?喜欢:

Enum values {
    value1,
    value2
}

int value = (int)value1;
And...
values value2 = (value) value;
Run Code Online (Sandbox Code Playgroud)

通过互联网发送这个会很高兴!谢谢大家!

巴斯

Tom*_*icz 6

无论是要么int:

int ordinal = values.value1.ordinal()

//unmarshalling
values.values[ordinal];
Run Code Online (Sandbox Code Playgroud)

或者String:

String name = values.value1.name();

//unmarshalling
values.valueOf(name);
Run Code Online (Sandbox Code Playgroud)

前者节省了一些空间(32位而不是变长字符串)但更难维护,例如重新排列enum值会破坏ordinal()向后兼容性.另一方面ordinal()允许您重命名enum值...