У меня есть следующий код:
public enum PortableTypes { Boolean, etc...};
public void testConversion() {
byte b = 5;
PortableTypes type = (PortableTypes)b;
}
Когда я компилирую, мне говорят, что это необратимые типы. Я не знал, что что-то такое простое, как это, будет оставлено вне Java. Я что-то упустил или Java просто не поддерживает приведение в enum вообще? Я также проверил с int, и это не удалось.
Если это не поддерживается, какой самый простой обходной путь?
EDIT:
Поскольку все продолжают жаловаться на «плохой дизайн», я объясню немного дальше. Я использую enum для представления типов, которые вы можете отправить с помощью моего TcpServer. Пакет отправляется с этим типом, и на принимающей стороне я смотрю на тип и использую его для преобразования байтов, считываемых из пакета, в пригодные для использования данные. Очевидно, что вы не можете отправить перечисление с помощью OutputStream, поэтому мне нужно преобразовать значение перечисления в числовое значение для отправки. Я не согласен с идеей, что это «плохой дизайн», я думаю, что Enums действительно должен использоваться именно для этой цели, но этот дизайн не работает в Java, потому что он строго типизирован.