具有多个参数的Java枚举

时间:2018-10-09 23:28:00

标签: java enums

我想知道在枚举类中存储多个值的方式是什么?

我尝试过

array of byte

但这给我抛出一个错误。

4 个答案:

答案 0 :(得分:4)

关于这一点,枚举的行为就像普通的类:您将需要一个构造函数。

private Name(int a, int b, int c) {
    // Define some fields and store a b and c into them
}

请注意,在类主体中,必须先定义枚举常量,然后再定义可选字段,构造函数和方法:

enum Name {
    ENUM_CONSTANT_1, ENUM_CONSTANT_2;

    int field;

    Name() { ... }

    public void someMethod() { ... }

}

注意:您应遵循Java命名约定:类名(包括枚举名)始终以大写开头。

答案 1 :(得分:1)

逗号必须位于所有已声明的枚举实例之间。

就像任何构造函数调用一样,参数必须匹配构造函数签名。声明一个构造函数以接受三个参数。您可能需要将它们分配给字段,并可能需要提供getter。

public enum Name { 
    James(1,2,3),
    Taylor(2,3,4),
    Mary(5,6,7);

    private int a, b, c;

    Name(int a, int b, int c) {
        // Assign to instance variables here
    }
    // Provide getter methods here.
}

答案 2 :(得分:0)

您需要一个name构造函数。它至少需要三个整数。它可能是可变的。喜欢,

public enum name {
    James(1, 2, 3), Taylor(2, 3, 4), Mary(5, 6, 7);
    int[] arr;
    private name(int... arr) {
        this.arr = arr;
    }
}

答案 3 :(得分:0)

public class Test{

 enum EnumName{

    James(1,2,3),
    Taylor(2,3,4),
    Mary(5,6,7);

    private int a,b,c;

    EnumName(int a,int b,int c){
       this.a=a;
       this.b=b;
       this.c=c;
    }
 }

 public static void main(String []args){
    EnumName n = EnumName.James; 
    System.out.println(n.a);
 }

}