Перечисления в Java и .NET являются очень другой. В .NET они просто называются номерами, в основном. В Java они представляют собой фиксированный набор объектов, которые вы можете придать дополнительный характер и т. Д.
Кроме того, код C# не является «расширением» byte
- он просто использует byte
в качестве базового типа. Ближайшим эквивалентом кода Java будет что-то вроде:
public enum Bezel {
// Note different naming convention in Java
FLASHING((byte) 0),
SOLID_ON((byte) 1),
NONE((byte) 254);
private final byte value;
private Bezel(byte value) {
this.value = value;
}
public byte getValue() {
return value;
}
}
Обратите внимание, что если вы печатаете из Bezel.NONE.getValue()
, он будет печатать -2, потому что в Java byte
типа подписан в то время как это беззнаковое в C#. В Java нет беззнакового байтового типа, но вы всегда можете использовать short
или int
, чтобы покрыть диапазон 0-255 (и многое другое, конечно).
также хочу получить метод для извлечения Bezel
с учетом его значения - что-то, что вы могли бы сделать на C# только путем литья. Однако мы не знаем, как вы собираетесь использовать перечисление.