如何用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
}
}
我收到错误A.B构造函数未定义,虽然我有一个构造函数
为什么我必须有一个构造函数?
答案 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;
}