Spec-Zone.ru › OpenJDK 24

Класс EnumSyntax

java.lang.Object
javax.print.attribute.EnumSyntax
Все реализуемые интерфейсы:
Serializable, Cloneable
Непосредственные известные подклассы:
Chromaticity, ColorSupported, Compression, DialogTypeSelection, Fidelity, Finishings, JobSheets, JobState, JobStateReason, Media, MultipleDocumentHandling, OrientationRequested, OutputBin, PDLOverrideSupported, PresentationDirection, PrinterIsAcceptingJobs, PrinterState, PrinterStateReason, PrintQuality, ReferenceUriSchemesSupported, Severity, SheetCollate, Sides
public abstract class EnumSyntax extends Object implements Serializable, Cloneable
Класс EnumSyntax является абстрактным базовым классом, обеспечивающим общее реализацию всех объектов "типобезопасных перечислений". Класс перечисления (который расширяет класс EnumSyntax) предоставляет группу значений перечисления (объектов), которые являются одиночными экземплярами класса перечисления; например:
     public class Bach extends EnumSyntax {
         public static final Bach JOHANN_SEBASTIAN     = new Bach(0);
         public static final Bach WILHELM_FRIEDEMANN   = new Bach(1);
         public static final Bach CARL_PHILIP_EMMANUEL = new Bach(2);
         public static final Bach JOHANN_CHRISTIAN     = new Bach(3);
         public static final Bach P_D_Q                = new Bach(4);

         private static final String[] stringTable = {
             "Johann Sebastian Bach",
              "Wilhelm Friedemann Bach",
              "Carl Philip Emmanuel Bach",
              "Johann Christian Bach",
              "P.D.Q. Bach"
         };

         protected String[] getStringTable() {
             return stringTable;
         }

         private static final Bach[] enumValueTable = {
             JOHANN_SEBASTIAN,
              WILHELM_FRIEDEMANN,
              CARL_PHILIP_EMMANUEL,
              JOHANN_CHRISTIAN,
              P_D_Q
         };

         protected EnumSyntax[] getEnumValueTable() {
             return enumValueTable;
         }
     }
 
Вы затем можете написать код, который использует операторы == и != для проверки значений перечисления; например:
     Bach theComposer;
     . . .
     if (theComposer == Bach.JOHANN_SEBASTIAN) {
         System.out.println ("The greatest composer of all time!");
     }
 
Метод equals() для класса перечисления просто выполняет проверку на идентичность объектов (==).

Вы можете преобразовать значение перечисления в строку, вызвав toString(). Строка получается из таблицы, предоставленной классом перечисления.

Под капотом, значение перечисления - это просто целое число, разное целое число для каждого значения перечисления внутри класса перечисления. Вы можете получить целочисленное значение значения перечисления, вызвав getValue(). Целочисленное значение значения перечисления устанавливается при его создании (см. EnumSyntax(int)). Поскольку конструктор защищён, единственно возможными значениями перечисления являются одиночные объекты, объявленные в классе перечисления; дополнительные значения перечисления не могут быть созданы во время выполнения.

Вы можете определить подкласс класса перечисления, который расширяет его дополнительными значениями перечисления. Целочисленные значения значений перечисления подкласса не обязательно должны отличаться от целочисленных значений значений перечисления суперкласса; методы ==, !=, equals() и toString() всё равно будут работать корректно, даже если подкласс использует некоторые из тех же целочисленных значений, что и суперкласс. Однако, приложение, в котором используется класс перечисления и подкласс, может потребовать отличных целочисленных значений в суперклассе и подклассе.

См. также:
  • Сериализованная форма

Краткое описание конструкторов

EnumSyntax(int value)
Модификатор Конструктор Описание
protected
Создаёт новое значение перечисления с заданным целочисленным значением.

Краткое описание методов

Модификатор и тип Метод Описание
Object clone()
Возвращает копию этого значения перечисления, которая для сохранения семантики значений перечисления является тем же самым объектом, что и это значение перечисления.
protected EnumSyntax[] getEnumValueTable()
Возвращает таблицу значений перечисления для класса перечисления этого значения перечисления.
protected int getOffset()
Возвращает самое низкое целочисленное значение, используемое классом перечисления этого значения перечисления.
protected String[] getStringTable()
Возвращает таблицу строк для класса перечисления этого значения перечисления.
int getValue()
Возвращает целочисленное значение этого значения перечисления.
int hashCode()
Возвращает хэш-код для этого значения перечисления.
protected Object readResolve()
Во время ввода объекта преобразует этот десериализованный экземпляр перечисления в соответствующее значение перечисления, определённое в классе атрибута перечисления.
String toString()
Возвращает строковое значение, соответствующее этому значению перечисления.

Методы, объявленные в классе java.lang.Object

equals, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание конструкторов

EnumSyntax

protected EnumSyntax(int value)
Создает новое значение перечисления с заданным целочисленным значением.
Параметры:
value - Целочисленное значение

Подробное описание методов

getValue

public int getValue()
Возвращает целочисленное значение этого значения перечисления.
Возвращает:
значение

clone

public Object clone()
Возвращает копию этого значения перечисления, которая, чтобы сохранить семантику значений перечисления, является тем же объектом, что и это значение перечисления.
Переопределяет:
clone в классе Object
Возвращает:
копию этого экземпляра.
См. также:
  • Cloneable

hashCode

public int hashCode()
Возвращает значение хэш-кода для этого значения перечисления. Хэш-код — это просто целочисленное значение этого значения перечисления.
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

toString

public String toString()
Возвращает строковое значение, соответствующее этому значению перечисления.
Переопределяет:
toString в классе Object
Возвращает:
строковое представление объекта

readResolve

protected Object readResolve() throws ObjectStreamException
Во время ввода объекта преобразуйте этот десериализованный экземпляр перечисления в соответствующее значение перечисления, определенное в классе атрибута перечисления.
Возвращает:
Значение единственного экземпляра перечисления, хранящееся в индексе i-L в таблице значений перечисления, возвращаемой getEnumValueTable(), где i — целочисленное значение этого значения перечисления, а L — значение, возвращаемое getOffset()
Исключения:
ObjectStreamException - если поток нельзя десериализовать
InvalidObjectException - если таблица значений перечисления является null, целочисленное значение этого значения перечисления не соответствует элементу в таблице значений перечисления или соответствующий элемент в таблице значений перечисления является null. (Примечание: InvalidObjectException является подклассом ObjectStreamException, который readResolve() объявлен для выброса.)

getStringTable

protected String[] getStringTable()
Возвращает таблицу строк для класса перечисления этого значения перечисления. Предполагается, что целочисленные значения класса перечисления лежат в диапазоне L..L+N-1, где L — значение, возвращаемое getOffset(), а N — длина таблицы строк. Элемент в таблице строк с индексом i-L — это значение, возвращаемое toString() для значения перечисления, целочисленное значение которого равно i. Если целое число в указанном диапазоне не используется ни одним значением перечисления, оставьте соответствующий элемент таблицы null.

Реализация по умолчанию возвращает null. Если класс перечисления (подкласс класса EnumSyntax) не переопределяет этот метод для возврата non-null таблицы строк, а подкласс не переопределяет метод toString(), метод базового класса toString() вернет просто строковое представление целочисленного значения этого значения перечисления.

Возвращает:
таблицу строк

getEnumValueTable

protected EnumSyntax[] getEnumValueTable()
Возвращает таблицу значений перечисления для класса перечисления этого значения перечисления. Предполагается, что целочисленные значения класса перечисления лежат в диапазоне L..L+N-1, где L — значение, возвращаемое getOffset(), а N — длина таблицы значений перечисления. Элемент в таблице значений перечисления с индексом i-L — это объект значения перечисления, целочисленное значение которого равно i; метод readResolve() нуждается в этом для сохранения семантики единственного экземпляра во время десериализации экземпляра перечисления. Если целое число в указанном диапазоне не используется ни одним значением перечисления, оставьте соответствующий элемент таблицы null.

Реализация по умолчанию возвращает null. Если класс перечисления (подкласс класса EnumSyntax) не переопределяет этот метод для возврата non-null таблицы значений перечисления, а подкласс не переопределяет метод readResolve(), метод базового класса readResolve() выбросит исключение при десериализации экземпляра перечисления из потока ввода объектов.

Возвращает:
таблицу значений

getOffset

protected int getOffset()
Возвращает наименьшее целочисленное значение, используемое классом перечисления этого значения перечисления.

Реализация по умолчанию возвращает 0. Если класс перечисления (подкласс класса EnumSyntax) использует целочисленные значения, начиная с другого значения, отличного от 0, переопределите этот метод в подклассе.

Возвращает:
смещение наименьшего значения перечисления

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.desktop/javax/print/attribute/EnumSyntax.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API