使用hexa值定义enum内部类

时间:2017-10-22 07:17:30

标签: java enums

如何用hexa值定义内部枚举类?
我试着做以下事情:

public class A {

    public static enum B {

        VALUE_1((byte) 0x1),
        VALUE_2((byte) 0x2);

        private byte value;

        private byte B(byte value) {
            return this.value = value;
        }

        byte getValue() {
            return value;
        }
    }

    public A() {
        //DOES SOMETHING
    }
}
  1. 我收到错误A.B构造函数未定义,虽然我有一个构造函数

  2. 为什么我必须有一个构造函数?

1 个答案:

答案 0 :(得分:4)

  

我收到错误A.B构造函数未定义,尽管我这样做   有一个构造函数

您定义的不是构造函数,而是private方法:

private  byte B (byte value) {
    return this.value = value;
}

构造函数没有返回类型,也没有void,所以它不返回任何内容。

  

为什么我必须有一个构造函数?

你有一个构造函数,但这是生成的no arg构造函数:

B () {...}

你不想要任何构造函数。您需要一个适合枚举值声明的构造函数:

VALUE_1((byte) 0x1),
VALUE_2((byte) 0x2);

这是你想要的构造函数:

private B (byte value) {
   this.value = value;
}