Javaアプリケーションで列挙型に値を設定しようとしていますが、できません。値を列挙型に設定 - Java
私は間違っているのですか?
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5)
};
それは私にこのエラーを与えている:コンストラクタRPCPacket.RPCPacketDataType(int)が定義されていません。
Javaアプリケーションで列挙型に値を設定しようとしていますが、できません。値を列挙型に設定 - Java
私は間違っているのですか?
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5)
};
それは私にこのエラーを与えている:コンストラクタRPCPacket.RPCPacketDataType(int)が定義されていません。
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;
}
}
あなたが「正常な」クラスと同じようにまた、あなたの列挙型でメソッドを定義することができます。両方#embossとして
System.out.println(RPCPacketDataType.PT_JSON.getNumericType() // => 4
int
パラメータを受け入れるContructorを作成する必要があります。また、渡された値を保持するint
フィールドを追加します。
public enum RPCPacketDataType {
PT_UNKNOWN(2),
PT_JSON(4),
PT_BINARY(5);
private int mValue;
RPCPacketDataType(int value) {
mValue = value;
}
}
を受け入れるコンストラクタを使用することができ、正しく述べました。 –
私はこのクラスにどのメソッドも簡単に追加できることを願っています。質問は値を追加することですが、検索することはありません:) – Michael
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
}
}
と#Michaelはあなたがあなたが、後で値へのアクセスを持っているゲッターを追加することもアリint
私は別の質問があります。どのように私はそのようなことをすることができます: RPCPacketDataType currentType; if(currentType!= PT_JSON)が返されます。 –
私は 'switch(currentType){case PT_JSON:...}' – emboss
実際には私はPT_JSONをチェックする必要があるので、私はstatement.Butアドバンスのために使用しています! –