Java:如何计算枚举类型中的序列号?
首先,我为我的英语不好道歉 我想使用枚举类型获取序列号为的消息。 示例如下,如何获得预期结果?? 还是有好办法?? 我想做的只是将序列号添加到“start”中,比如“start 0”,当a1实例调用callEnd时,我想得到“end 0”Java:如何计算枚举类型中的序列号?,java,Java,首先,我为我的英语不好道歉 我想使用枚举类型获取序列号为的消息。 示例如下,如何获得预期结果?? 还是有好办法?? 我想做的只是将序列号添加到“start”中,比如“start 0”,当a1实例调用callEnd时,我想得到“end 0” 事实上,它是一个enum并没有什么区别——您只需要一个字段来跟踪数字 您可以添加一个计数器,尽管@PeterLawrey建议您应该避免使枚举值可变,除非这是最简单的解决方案 public enum State{ START("start"),
事实上,它是一个
enum
并没有什么区别——您只需要一个字段来跟踪数字
您可以添加一个计数器,尽管@PeterLawrey建议您应该避免使枚举值可变,除非这是最简单的解决方案
public enum State{
START("start"),
END("end");
private int counter = 0;
private String msg;
State(String msg){
this.msg = msg;
}
String getMessage() {
return msg + " " + counter++;
}
}
public static void main(String[] args) {
System.out.println(State.START.getMessage()); // start 0
System.out.println(State.START.getMessage()); // start 1
}
对不起,不知道你在说什么。你能再解释一下吗?
msg
是private
。您要么创建一个getter方法,要么将其公开(无论哪种方式,我也会将其设置为final,因此无法修改)。我注意到msg
几乎与枚举的值相同。为什么不用呢?@PeterLawrey你赢了30秒。最近我失去了很多,我把我的答案和你的答案结合起来了非常感谢。非常慷慨。:)如何获取与开始0相对应的结束0。
public enum State{
START("start"),
END("end");
private int counter = 0;
private String msg;
State(String msg){
this.msg = msg;
}
String getMessage() {
return msg + " " + counter++;
}
}
public static void main(String[] args) {
System.out.println(State.START.getMessage()); // start 0
System.out.println(State.START.getMessage()); // start 1
}