Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将值设置为Enum-Java_Java_Android_Enums - Fatal编程技术网

将值设置为Enum-Java

将值设置为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 {

我试图在我的java应用程序中为enum设置值……但我做不到

我做错了吗

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
  }

}