Как я могу объявить перечисления с помощью java
Я хочу преобразовать этот образец кода С# в код Java:
public enum myEnum {
ONE = "one",
TWO = "two",
};
Поскольку я хочу изменить этот постоянный класс на enum
public final class TestConstants {
public static String ONE = "one";
public static String TWO= "two";
}
Ответы
Ответ 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;
}
}