改变枚举参数

时间:2017-07-02 13:05:29

标签: java enums

我正在尝试创建一个参数类型不同的枚举。例如:

enum test {
    foo(true, 5), //true is a boolean, 5 is an integer
    bar(20, 50), //both arguments are integers 
//........
}

当我编写枚举构造函数时,它只能适应两个变量之一的描述。它可能是:

enum test {
    foo(true, 5), //true is a boolean, 5 is an integer
    bar(20, 50); //both arguments are integers 

    private boolean bool;
    private int i;

    private test(boolean bool, int i) {
    this.bool = bool;
    this.i = i;
    }
}

或构造函数可以是:

private test(int i, int i1) {
    this.i = i;
    this.i1 = i1;
    }

有没有办法让我有多个枚举变量,每个变量都有不同的参数(不同的类型)

1 个答案:

答案 0 :(得分:0)

当然,您可以重载构造函数,即 有多个具有相同名称但具有不同签名的构造函数。 像往常一样使用重载时,请务必明智地使用它,如this article中所述。

  enum MyEnum {
    foo(true, 5),
    bar(20, 50);

    private boolean bool;
    private int num1;
    private int num2;

    MyEnum(boolean bool, int num) {
      this.bool = bool;
      this.num1 = num;
    }

    MyEnum(int num1, int num2) {
      this.num1 = num1;
      this.num2 = num2;
    }
  }