当前位置: 首页 > 知识库问答 >
问题:

Java:如何在枚举类型中计算序列号?[关闭]

夏谦
2023-03-14

起初,我为我糟糕的英语道歉。

我想用枚举类型获取带有序列号的消息。示例如下,我如何才能得到我期望的结果??还是有什么好办法??我想做的只是添加序列号到“start”,就像“start0”,当一个调用callEnd的1实例时,我希望得到“end 0”。

public enum State{
    START("start"),
    END("end");    

    public String msg;  

    private State(String msg){
       this.msg = msg;
    }
}

public class A{

   public void callStart(){
      System.out.println(State.START.msg);
   }

   public void callEnd(){
      System.out.println(State.END.msg);
   }

   public static void main(String[] args){
       A a1 = new A();
       A a2 = new A();

       a1.callStart(); // I wanna get start 0 here
       a2.callStart(); // I wanna get start 1 here     
       a1.callEnd();   // I wanna get end 0 here
       a2.callEnd();   // I wanna get end 1 here
   }
}

共有1个答案

巫马盛
2023-03-14

它是枚举这一事实并没有什么区别--您只需要一个字段来跟踪数字。

您可以添加一个计数器,不过@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
}
 类似资料:
  • 问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S

  • 问题内容: 我有一个枚举的类对象(我有一个),我需要获取此枚举表示的枚举值的列表。该静态函数有我需要什么,但我不知道怎么去从类对象访问它。 问题答案:

  • 例如,我如何做类似的事情: 结果示例:

  • 非常感谢您在广告方面的帮助。! 使用枚举类型的扫描仪时出错。然而,我不允许在这个任务中使用Buffer(InputStreamReader)。围绕它最好的工作是什么? 我收到以下错误: 代码: import java.util.Scanner; 公开课申请{ }

  • rank ▲ ✰ vote url 7 1112 431 1201 url 在Python里如何用枚举类型? 我是一个C#开发者,但是我现在做的工作是关于Python的. 怎么在Python里代替枚举类型呢? PEP435标准里已经把枚举添加到Python3.4版本,在Pypi中也可以向后支持3.3, 3.2, 3.1, 2.7, 2.6, 2.5, 和 2.4版本. 如果想向后兼容$ pip i