Spec-Zone.ru › OpenJDK 27

Класс 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()
Возвращает строковое значение, соответствующее этому значению перечисления.

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

equals, finalize, getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация объявлена устаревшей и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова notify или interrupt, либо до истечения заданного промежутка реального времени.

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

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(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, переопределите этот метод в подклассе.

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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