将值设置为Enum-Java
我试图在我的java应用程序中为enum设置值……但我做不到 我做错了吗将值设置为Enum-Java,java,android,enums,Java,Android,Enums,我试图在我的java应用程序中为enum设置值……但我做不到 我做错了吗 public enum RPCPacketDataType { PT_UNKNOWN(2), PT_JSON(4), PT_BINARY(5) }; 它给了我这个错误:构造函数RPCPacket.rpcpackedatatype(int)未定义。您应该创建一个接受int参数的构造函数。还添加一个int字段,该字段将保存传递的值 public enum RPCPacketDataType {
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5)
};
它给了我这个错误:构造函数RPCPacket.rpcpackedatatype(int)未定义。您应该创建一个接受
int
参数的构造函数。还添加一个int
字段,该字段将保存传递的值
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5);
private int mValue;
RPCPacketDataType(int value) {
mValue = value;
}
}
您还可以像在“普通”类中一样在枚举上定义方法
正如#emboss和#Michael正确地说的那样,您可以使用接受ant
int
的构造函数,您可能还需要添加一个getter,以便以后访问该值。我希望您可以自己轻松地向该类添加任何方法。问题是关于添加值而不是检索值:)我还有一个问题。我如何做这样的事情:rpcpackedatatype currentType;if(currentType!=PT_JSON)返回;我会使用switch
作为枚举:switch(currentType){case PT_JSON:…}
实际上我只需要检查PT_JSON,这就是我使用if语句的原因。但是感谢您的帮助!
public enum RPCPacketDataType
{
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5);
RPCPacketDataType (int i)
{
this.type = i;
}
private int type;
public int getNumericType()
{
return type;
}
}
System.out.println(RPCPacketDataType.PT_JSON.getNumericType() // => 4
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5);
private int type;
RPCPacketDataType(int type) {
this.type = type;
}
public int getNumericType() {
return type;
}
public void setNumericType(int type) {
this.type = type;
}
public static void main(String[] args) {
RPCPacketDataType.PT_UNKNOWN.setNumericType(0);
System.out.println("Type: "+RPCPacketDataType.PT_UNKNOWN.getNumericType());
// Type: 0
}
}