Подтвердить что ты не робот

Как я могу объявить перечисления с помощью java

Я хочу преобразовать этот образец кода С# в код Java:

public enum myEnum {
  ONE = "one",
  TWO = "two",
}; 

Поскольку я хочу изменить этот постоянный класс на enum

public final class TestConstants {
    public static String ONE = "one";
    public static String TWO= "two";
}
4b9b3361

Ответ 1

public enum MyEnum {
   ONE(1),
   TWO(2);
   private int value;
   private MyEnum(int value) {
      this.value = value;
   }
   public int getValue() {
      return value;
   }
}

Короче говоря, вы можете определить любое количество параметров для перечисления, пока вы предоставляете аргументы конструктора (и устанавливаете значения в соответствующие поля)

Как отметил Скотт, официальная документация enum

Ответ 2

перечисления являются классами на Java. Они имеют неявное порядковое значение, начиная с 0. Если вы хотите сохранить дополнительное поле, то вы делаете это как для любого другого класса:

public enum MyEnum {

    ONE(1),
    TWO(2);

    private final int value;

    private MyEnum(int value) {
        this.value = value;
    }

    public int getValue() {
        return this.value;
    }
}

Ответ 3

Достаточно просто:

/**
 * @author The Elite Gentleman
 *
 */
public enum MyEnum {
    ONE("one"), TWO("two")
    ;
    private final String value;

    private MyEnum(final String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return getValue();
    }
}

Для получения дополнительной информации посетите Типы перечислений из учебных пособий Oracle Java. Кроме того, имейте в виду, что перечисления имеют конструктор private.


Обновить, так как вы обновили сообщение, я изменил свое значение с int на String.
Связанный: перечисление Java String.

Ответ 4

public enum MyEnum
{
    ONE(1),
    TWO(2);

    private int value;

    private MyEnum(int val){
        value = val;
    }

    public int getValue(){
        return value;
    }
}

Ответ 5

Ну, в java вы также можете создать параметризованное перечисление. Предположим, вы хотите создать перечисление className, в котором вам нужно сохранить classCode, а также className, вы можете сделать это вот так:

public enum ClassEnum {

    ONE(1, "One"), 
    TWO(2, "Two"),
    THREE(3, "Three"),
    FOUR(4, "Four"),
    FIVE(5, "Five")
    ;

    private int code;
    private String name;

    private ClassEnum(int code, String name) {
        this.code = code;
        this.name = name;
    }

    public int getCode() {
        return code;
    }

    public String getName() {
        return name;
    }
}

Ответ 6

public enum NewEnum {
   ONE("test"),
   TWO("test");

   private String s;

   private NewEnum(String s) {
      this.s = s);
   }

    public String getS() {
        return this.s;
    }
}