Пример свойства и методы, объявленные в перечислении приведены ниже:
package com.fhp.enumexample;
public enum TypeEnum {
VIDEO(1), AUDIO(2), TEXT(3), IMAGE(4);
int value;
TypeEnum(int value) {
this.value = value;
}
public int getValue() {
return value;
}
}
В этом перечислении, значение типа INT для каждого поля имеет соответствующий перечень, и подсчет различных значений будет иметь разные значения Int. В то же время, это обычный класс, вы можете объявить конструктор и ряд методов. Такие, как:
TypeEnum type = TypeEnum.TEXT;//type的value属性值为3。
System.out.println(type.getValue());//屏幕输出3。
Если вы хотите задать атрибуты для каждого значения перечисления должны быть объявлен параметром атрибута, соответствующего типу методы строительства (не является общедоступным) в перечислении. В противном случае компилятор выдаст конструктору TypeEnum (интермедиат, String) ошибка не определена. В этом варианте осуществления атрибут является INT, метод должен быть сконфигурирован так, Int. Кроме того, перечисление может также указать несколько атрибутов, таких как:
package com.fhp.enumexample;
public enum TypeEnum {
VIDEO(1, "视频"), AUDIO(2, "音频"), TEXT(3, "文本"), IMAGE(4, "图像");
int value;
String name;
TypeEnum(int value, String name) {
this.value = value;
this.name = name;
}
public int getValue() {
return value;
}
public String getName() {
return name;
}
}
перечисление также построен ряд методов, обычно используемых следующим образом:
int compareTo(E o)
比较此枚举与指定对象的顺序。
Class<E> getDeclaringClass()
返回与此枚举常量的枚举类型相对应的 Class 对象。
String name()
返回此枚举常量的名称,在其枚举声明中对其进行声明。
int ordinal()
返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。
String toString()
返回枚举常量的名称,它包含在声明中。
static <T extends Enum<T>> T valueOf(Class<T> enumType, String name)
返回带指定名称的指定枚举类型的枚举常量。
static T[] values()
返回该枚举的所有值。
Теперь, предполагается реализовать способ генерации значения перечисления перечисления, это может быть сделано в соответствии с целочисленным значением:
package com.fhp.enumexample;
public enum TypeEnum {
VIDEO(1, "视频"), AUDIO(2, "音频"), TEXT(3, "文本"), IMAGE(4, "图像");
int value;
String name;
TypeEnum(int value, String name) {
this.value = value;
this.name = name;
}
public int getValue() {
return value;
}
public String getName() {
return name;
}
public static TypeEnum getByValue(int value) {
for(TypeEnum typeEnum : TypeEnum.values()) {
if(typeEnum.value == value) {
return typeEnum;
}
}
throw new IllegalArgumentException("No element matches " + value);
}
}
getByValue (INT) представляет собой целое значение численного метода для вращения перечисления. Вызов значения () метод, чтобы получить все перечисленные значения, то для каждого из перечисленных ниже, и заданного целого числа значение соответствует, если соответствующий непосредственно возвращен, если не исключение совпадающее значение IllegalArgumentException не генерируется, параметр, указывающий незаконным, и роль проверки.
Подводя итог, мы можем видеть , что в перечислении JDK5 недавно представили идеальное решение проблемы дискретного внесенной представлена постоянным, значительно повысить читаемость, простоту использования и сопровождение программы, и на этой основе была расширена так , что он может, как и классы , чтобы использовать, это до нового уровня для представления Java дискретного количества. Поэтому, в случае необходимости представлять в Java, такие как ограниченный цвет, мода, категория, статус и т.д. Число, в виде дискретных, но очень ясное выражение суммы, следует попытаться отказаться от практики постоянного представительства, и будет перечислять в качестве первичного выбора.
----------------
Отказ от ответственности: Эта статья CSDN блоггер Оригинал статьи «Jicky-17», и следовать CC 4,0 BY-SA соглашение об авторских правах, воспроизведены, пожалуйста , приложите оригинал и ссылки это утверждение.
Оригинальная ссылка: https://blog.csdn.net/u014527058/article/details/52751488