Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可变枚举参数_Java_Enums - Fatal编程技术网

Java 可变枚举参数

Java 可变枚举参数,java,enums,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 intege

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

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;
    }
有没有办法让我有多个枚举变量,每个都有不同的参数(不同的类型)

当然,你可以重载构造函数,也就是, 具有多个具有相同名称但具有不同签名的构造函数。 与往常一样,在使用重载时,请确保明智地使用它,如中所述

当然,可以重载构造函数,也就是说, 具有多个具有相同名称但具有不同签名的构造函数。 与往常一样,在使用重载时,请确保明智地使用它,如中所述


只需设置3个参数(
bool、i、i1
),然后设置不需要的参数
0
false
test
类型的项不可能有不同的变量集。重载构造函数只需将其设为3个参数(
bool,i,i1
),然后设置不需要的参数
0
false
。类型为
test
的项不可能有不同的变量集。重载构造函数
  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;
    }
  }