Класс 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() будут работать правильно, даже если подкласс использует некоторые из тех же целочисленных значений, что и суперкласс. Однако в приложении, использующем класс перечисления и его подкласс, может потребоваться, чтобы целочисленные значения в суперклассе и подклассе различались.
- См. также:
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новое значение перечисления с заданным целочисленным значением. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Object |
clone() |
Возвращает копию этого значения перечисления, которая для сохранения семантики значений перечисления является тем же объектом, что и это значение перечисления. |
protected EnumSyntax[] |
getEnumValueTable() |
Возвращает таблицу значений перечисления для класса перечисления этого значения. |
protected int |
getOffset() |
Возвращает наименьшее целочисленное значение, используемое классом перечисления этого значения. |
protected String[] |
getStringTable() |
Возвращает таблицу строк для класса перечисления этого значения. |
int |
getValue() |
Возвращает целочисленное значение этого значения перечисления. |
int |
hashCode() |
Возвращает хеш-код этого значения перечисления. |
protected Object |
readResolve() |
При чтении объекта преобразует этот десериализованный экземпляр перечисления в соответствующее значение перечисления, определённое в классе атрибута перечисления. |
String |
toString() |
Возвращает строковое значение, соответствующее этому значению перечисления. |
Подробное описание конструкторов
EnumSyntax
protected EnumSyntax(int value)
- Параметры:
-
value— целочисленное значение
Подробное описание методов
getValue
public int getValue()
- Возвращает:
- значение
clone
hashCode
toString
readResolve
protected Object readResolve() throws ObjectStreamException
- Возвращает:
- единственное значение перечисления, хранящееся по индексу i-L в таблице значений перечисления, возвращаемой методом
getEnumValueTable(), где i — целочисленное значение этого значения перечисления, а L — значение, возвращаемое методомgetOffset() - Выбрасывает:
-
ObjectStreamException— если поток не удаётся десериализовать -
InvalidObjectException— если таблица значений перечисления равнаnull, целочисленное значение этого значения перечисления не соответствует элементу таблицы значений перечисления или соответствующий элемент таблицы значений перечисления равенnull. (Примечание:InvalidObjectExceptionявляется подклассомObjectStreamException, которыйreadResolve()объявлен как выбрасываемый.)
getStringTable
protected String[] getStringTable()
getOffset(), а N — длина таблицы строк. Элемент таблицы строк с индексом i-L — это значение, возвращаемое методом toString() для значения перечисления, целочисленное значение которого равно i. Если какое-либо целое число в указанном диапазоне не используется ни одним значением перечисления, соответствующий элемент таблицы следует оставить равным null. Реализация по умолчанию возвращает null. Если класс перечисления (подкласс класса EnumSyntax) не переопределяет этот метод для возврата non-null таблицы строк, а подкласс не переопределяет метод toString(), метод toString() базового класса будет возвращать только строковое представление целочисленного значения этого значения перечисления.
- Возвращает:
- таблица строк
getEnumValueTable
protected EnumSyntax[] getEnumValueTable()
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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/javax/print/attribute/EnumSyntax.html