Java Урок 50: ПЕРЕЧИСЛЕНИЯ, valueOf(), values()

Перечисления автоматически включают два предопределенных метода: values() и valueOf().

Скачать исходники для статьи можно ниже

Их общая форма выглядит так:

public static тип_перечисления [] values()
public static тип_перечисления valueOf(String строка)

Метод values() возвращает массив, содержащий список констант перечисления.
Метод valueOf() возвращает константу перечисления, значение
которой соответствует строке, переданной в аргументе строка.

В обоих случаях тип_перечисления — это тип перечисления.

Например, в случае с перечислением Apple, показанным выше, типом возвращаемого значения Apple. valueOf(“Winesapp”) будет Winesарр.

В следующей программе демонстрируется применение методов values()
и valueOf():

// Использование встроенных методов перечислений.
// Перечисление сортов яблок,
enum Apple {
   Jonathan, GoldenDel, RedDel, Winesap, Cortland
}

class EnumDemo2 {
   public static void main(String args[]) {
      Apple ap;
      System.out.println("Константы Apple:");
      // применение values()
      Apple allapples[] = Apple.values();
      for(Apple a : allapples)
      System.out.println(a);
      System.out.println();
      // применение valueOf()
      ap = Apple.valueOf("Winesap");
      System.out.println("ар содержит " + ap) ;
   }
}

Вывод этой программы таков:
Константы Apple:
Jonathan
GoldenDel
RedDel
Winesap
Cortland
ap содержит Winesap

Обратите внимание на то, что программа использует стиль “for-each” цикла for для перебора массива констант, возвращенных методом values().
В целях демонстрации создается переменная allapples, которой присваивается ссылка на массив перечислимых значений. Но это не обязательно, поскольку цикл for можно написать, как показано ниже, избежав применения переменной allapples:

for(Apple a : Apple.values())
System.out.println(a);

Обратите также внимание на то, как значение, соответствующее имени
Winesapp, получается вызовом метода valueOf():

ар = Apple.valueOf("Winesap");

Как объяснялось ранее, метод valueOf() возвращает перечислимое значение, ассоциированное с именем константы, переданным в строке.

Введите свой email адрес для того, чтобы подписаться на мой блог:


knopkisoc

Добавить комментарий