打印存储在枚举中的值
Printing values stored in an enum
我有以下枚举值。
register1(1, 000),
register2(2, 000),
register3(3, 000),
register4(4, 000);
我想打印出括号中的值而不是名称。它们都是int类型。第二个值由一个 switch 语句更新,该语句全部正常工作,但我想获得第二个值的新值 而不必单独写出每个值,因此尝试循环遍历枚举!
当我尝试时
for (Registers register: Registers.values()) {
System.out.println(register);
}
它打印出 "Register1, Register2 etc. etc."
public enum Registers {
register1(1, 000),
register2(2, 000),
register3(3, 000),
register4(4, 000);
public int registerNumber;
public int result;
private Registers(int registerNumber, int result) {
this.registerNumber = registerNumber;
this.result = result;
}
public int getRegisterNumber() {
return registerNumber;
}
public int getResult() {
return result;
}
public static Registers getByNumber(int number) {
for (Registers register : values()) {
if (register.registerNumber == number) {
return register;
}
} return null;
}
}
将 getter 添加到您的枚举中,return 存储您的值的字段变量。
public enum Register {
register1(1, 0);
private int field1;
private int field2;
private Register(int field1, int field2) {
this.field1 = field1;
this.field2 = field2;
}
public int getField1() {
return field1;
}
public int getField2() {
return field2;
}
}
只需为其提供访问器并在 println()
中调用它而不是依赖 toString()
:
for (Registers register: Registers.values()) {
System.out.println(register.getResult());
}
我有以下枚举值。
register1(1, 000),
register2(2, 000),
register3(3, 000),
register4(4, 000);
我想打印出括号中的值而不是名称。它们都是int类型。第二个值由一个 switch 语句更新,该语句全部正常工作,但我想获得第二个值的新值 而不必单独写出每个值,因此尝试循环遍历枚举!
当我尝试时
for (Registers register: Registers.values()) {
System.out.println(register);
}
它打印出 "Register1, Register2 etc. etc."
public enum Registers {
register1(1, 000),
register2(2, 000),
register3(3, 000),
register4(4, 000);
public int registerNumber;
public int result;
private Registers(int registerNumber, int result) {
this.registerNumber = registerNumber;
this.result = result;
}
public int getRegisterNumber() {
return registerNumber;
}
public int getResult() {
return result;
}
public static Registers getByNumber(int number) {
for (Registers register : values()) {
if (register.registerNumber == number) {
return register;
}
} return null;
}
}
将 getter 添加到您的枚举中,return 存储您的值的字段变量。
public enum Register {
register1(1, 0);
private int field1;
private int field2;
private Register(int field1, int field2) {
this.field1 = field1;
this.field2 = field2;
}
public int getField1() {
return field1;
}
public int getField2() {
return field2;
}
}
只需为其提供访问器并在 println()
中调用它而不是依赖 toString()
:
for (Registers register: Registers.values()) {
System.out.println(register.getResult());
}