Перечисление Java с несколькими параметрами - PullRequest
0 голосов
/ 10 октября 2018

Мне было интересно, как можно хранить несколько значений в классе enum?

Я пытался

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

, но это выдает ошибку.

Ответы [ 4 ]

0 голосов
/ 10 октября 2018
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);
 }

}

0 голосов
/ 10 октября 2018

В этом отношении перечисление действует как обычный класс: вам понадобится конструктор.

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: имена классов (включая имена перечислений) всегда начинаются с прописных букв.

0 голосов
/ 10 октября 2018

Запятые должны быть между всеми объявленными экземплярами enum.

Как и любой вызов конструктора, аргументы должны соответствовать сигнатуре конструктора.Объявите конструктор для принятия трех параметров.Возможно, вы захотите назначить их полям, и вам может потребоваться предоставить геттеры.

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.
}
0 голосов
/ 10 октября 2018

Вам нужен 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;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...