Перечисление смысл, цель, функция, использование, сцены

Пример свойства и методы, объявленные в перечислении приведены ниже:

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

рекомендация

отwww.cnblogs.com/jsll/p/11613032.html