Spec-Zone.ru › OpenJDK 27

Класс перечисления SourceVersion

java.lang.Object
java.lang.Enum<SourceVersion>
javax.lang.model.SourceVersion
Все реализуемые интерфейсы:
Serializable, Comparable<SourceVersion>, Constable
public enum SourceVersion extends Enum<SourceVersion>
Версии исходного кода языка программирования Java. Сведения о конкретной версии исходного кода см. в соответствующем издании Спецификации языка Java.

Обратите внимание, что для моделирования будущих выпусков языка будут добавлены дополнительные константы версий исходного кода.

Начиная с:
1.6
См. также:
  • ClassFileFormatVersion

Краткое описание вложенных классов

Вложенные классы и интерфейсы, объявленные в классе Enum

Enum.EnumDesc<E>
Модификатор и тип Класс Описание
static final class  Enum.EnumDesc<E extends Enum<E>>
Номинальный дескриптор константы enum.

Краткое описание констант перечисления

Константа перечисления Описание
RELEASE_0
Исходная версия.
RELEASE_1
Версия, представленная в Java Platform 1.1.
RELEASE_10
Версия, представленная в Java Platform, Standard Edition 10.
RELEASE_11
Версия, представленная в Java Platform, Standard Edition 11.
RELEASE_12
Версия, представленная в Java Platform, Standard Edition 12.
RELEASE_13
Версия, представленная в Java Platform, Standard Edition 13.
RELEASE_14
Версия, представленная в Java Platform, Standard Edition 14.
RELEASE_15
Версия, представленная в Java Platform, Standard Edition 15.
RELEASE_16
Версия, представленная в Java Platform, Standard Edition 16.
RELEASE_17
Версия, представленная в Java Platform, Standard Edition 17.
RELEASE_18
Версия, представленная в Java Platform, Standard Edition 18.
RELEASE_19
Версия, представленная в Java Platform, Standard Edition 19.
RELEASE_2
Версия, представленная в Java 2 Platform, Standard Edition, v 1.2.
RELEASE_20
Версия, представленная в Java Platform, Standard Edition 20.
RELEASE_21
Версия, представленная в Java Platform, Standard Edition 21.
RELEASE_22
Версия, представленная в Java Platform, Standard Edition 22.
RELEASE_23
Версия, представленная в Java Platform, Standard Edition 23.
RELEASE_24
Версия, представленная в Java Platform, Standard Edition 24.
RELEASE_25
Версия, представленная в Java Platform, Standard Edition 25.
RELEASE_26
Версия, представленная в Java Platform, Standard Edition 26.
RELEASE_27
Версия, представленная в Java Platform, Standard Edition 27.
RELEASE_3
Версия, представленная в Java 2 Platform, Standard Edition, v 1.3.
RELEASE_4
Версия, представленная в Java 2 Platform, Standard Edition, v 1.4.
RELEASE_5
Версия, представленная в Java 2 Platform, Standard Edition 5.0.
RELEASE_6
Версия, представленная в Java Platform, Standard Edition 6.
RELEASE_7
Версия, представленная в Java Platform, Standard Edition 7.
RELEASE_8
Версия, представленная в Java Platform, Standard Edition 8.
RELEASE_9
Версия, представленная в Java Platform, Standard Edition 9.

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

Модификатор и тип Метод Описание
static boolean isIdentifier(CharSequence name)
Возвращает значение, указывающее, является ли name синтаксически допустимым идентификатором (простым именем) или ключевым словом в последней версии исходного кода.
static boolean isKeyword(CharSequence s)
Возвращает значение, указывающее, является ли s ключевым словом, логическим литералом или литералом null в последней версии исходного кода.
static boolean isKeyword(CharSequence s, SourceVersion version)
Возвращает значение, указывающее, является ли s ключевым словом, логическим литералом или литералом null в указанной версии исходного кода.
static boolean isName(CharSequence name)
Возвращает значение, указывающее, является ли name синтаксически допустимым квалифицированным именем в последней версии исходного кода.
static boolean isName(CharSequence name, SourceVersion version)
Возвращает значение, указывающее, является ли name синтаксически допустимым квалифицированным именем в указанной версии исходного кода.
static SourceVersion latest()
Возвращает последнюю версию исходного кода, которую можно моделировать.
static SourceVersion latestSupported()
Возвращает последнюю версию исходного кода, полностью поддерживаемую текущей средой выполнения.
Runtime.Version runtimeVersion()
Возвращает минимальную версию среды выполнения, поддерживающую эту версию исходного кода; в противном случае — null.
static SourceVersion valueOf(Runtime.Version rv)
Возвращает последнюю версию исходного кода, пригодную для использования с указанной версией среды выполнения.
static SourceVersion valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем.
static SourceVersion[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.

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

clone, compareTo, describeConstable, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf
Модификатор и тип Метод Описание
protected final Object clone()
Выбрасывает CloneNotSupportedException.
final int compareTo(SourceVersion o)
Сравнивает это перечисление с указанным объектом для определения порядка.
final Optional<Enum.EnumDesc<SourceVersion>> describeConstable()
Возвращает дескриптор перечисления EnumDesc для этого экземпляра, если его можно создать, или пустой объект Optional, если создать его нельзя.
final boolean equals(Object other)
Возвращает true, если указанный объект равен этой константе перечисления.
protected final void finalize()
Устарело, подлежит удалению: этот элемент API может быть удалён в будущей версии.
Метод завершения работы устарел и подлежит удалению.
final Class<SourceVersion> getDeclaringClass()
Возвращает объект Class, соответствующий типу перечисления этой константы перечисления.
final int hashCode()
Возвращает хеш-код этой константы перечисления.
final String name()
Возвращает имя этой константы перечисления в точности в том виде, в котором оно объявлено в объявлении перечисления.
final int ordinal()
Возвращает порядковый номер этой константы перечисления (её позицию в объявлении перечисления; начальной константе присваивается номер 0).
String toString()
Возвращает имя этой константы перечисления, указанное в объявлении.
static <T extends Enum<T>>
T
valueOf(Class<T> enumClass, String name)
Возвращает константу указанного класса перечисления с заданным именем.

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

getClass, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
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, либо до истечения определённого времени.

Подробное описание констант перечисления

RELEASE_0

public static final SourceVersion RELEASE_0
Исходная версия. Язык, описанный в Спецификации языка Java, первое издание.

RELEASE_1

public static final SourceVersion RELEASE_1
Версия, представленная в Java Platform 1.1. Язык RELEASE_0 дополнен вложенными классами, как описано в обновлении 1.1 к Спецификации языка Java, первое издание.

RELEASE_2

public static final SourceVersion RELEASE_2
Версия, представленная в Java 2 Platform, Standard Edition, v 1.2. Язык, описанный в Спецификации языка Java, второе издание, включает модификатор strictfp.

RELEASE_3

public static final SourceVersion RELEASE_3
Версия, представленная в Java 2 Platform, Standard Edition, v 1.3. Существенных изменений по сравнению с RELEASE_2 нет.

RELEASE_4

public static final SourceVersion RELEASE_4
Версия, представленная в Java 2 Platform, Standard Edition, v 1.4. Добавлена простая возможность утверждений.
См. также:
  • JSR 41: Простая возможность утверждений

RELEASE_5

public static final SourceVersion RELEASE_5
Версия, представленная в Java 2 Platform, Standard Edition 5.0. Язык, описанный в Спецификации языка Java, третье издание. Первый выпуск с поддержкой обобщений, аннотаций, автоматического упаковывания, переменного числа аргументов, расширенного цикла for и шестнадцатеричных литералов с плавающей точкой.
См. также:
  • JSR 14: Добавление обобщённых типов в язык программирования Java™
  • JSR 175: Средство метаданных для языка программирования Java™
  • JSR 201: Расширение языка программирования Java™ перечислениями, автоматическим упаковыванием, расширенными циклами for и статическим импортом

RELEASE_6

public static final SourceVersion RELEASE_6
Версия, представленная в Java Platform, Standard Edition 6. Существенных изменений по сравнению с RELEASE_5 нет.
См. также:
  • Спецификация языка Java, третье издание

RELEASE_7

public static final SourceVersion RELEASE_7
Версия, представленная в Java Platform, Standard Edition 7. Среди нововведений этого выпуска — синтаксис diamond для конструкторов, конструкция try-with-resources, строки в switch, двоичные литералы и multi-catch.
Начиная с:
1.7
См. также:
  • Спецификация языка Java, редакция Java SE 7
  • JSR 334: Небольшие улучшения языка программирования Java™

RELEASE_8

public static final SourceVersion RELEASE_8
Версия, представленная в Java Platform, Standard Edition 8. Среди нововведений этого выпуска — лямбда-выражения и методы по умолчанию.
Начиная с:
1.8
См. также:
  • Спецификация языка Java, редакция Java SE 8
  • JSR 335: Лямбда-выражения для языка программирования Java™

RELEASE_9

public static final SourceVersion RELEASE_9
Версия, представленная в Java Platform, Standard Edition 9. Среди нововведений этого выпуска — модули и исключение одиночного символа подчёркивания из множества допустимых имён идентификаторов.
Начиная с:
9
См. также:
  • Спецификация языка Java, редакция Java SE 9
  • JSR 376: Система модулей платформы Java™
  • JEP 213: Шлифовка Project Coin

RELEASE_10

public static final SourceVersion RELEASE_10
Версия, представленная в Java Platform, Standard Edition 10. Среди нововведений этого выпуска — вывод типов локальных переменных (var).
Начиная с:
10
См. также:
  • Спецификация языка Java, редакция Java SE 10
  • JEP 286: Вывод типов локальных переменных

RELEASE_11

public static final SourceVersion RELEASE_11
Версия, представленная в Java Platform, Standard Edition 11. Среди нововведений этого выпуска — синтаксис локальных переменных для параметров лямбда-выражений.
Начиная с:
11
См. также:
  • Спецификация языка Java, редакция Java SE 11
  • JEP 323: Синтаксис локальных переменных для параметров лямбда-выражений

RELEASE_12

public static final SourceVersion RELEASE_12
Версия, представленная в Java Platform, Standard Edition 12. Существенных изменений по сравнению с предыдущим выпуском нет.
Начиная с:
12
См. также:
  • Спецификация языка Java, редакция Java SE 12

RELEASE_13

public static final SourceVersion RELEASE_13
Версия, представленная в Java Platform, Standard Edition 13. Существенных изменений по сравнению с предыдущим выпуском нет.
Начиная с:
13
См. также:
  • Спецификация языка Java, редакция Java SE 13

RELEASE_14

public static final SourceVersion RELEASE_14
Версия, представленная в Java Platform, Standard Edition 14. Среди нововведений этого выпуска — switch-выражения.
Начиная с:
14
См. также:
  • Спецификация языка Java, редакция Java SE 14
  • JEP 361: Switch-выражения

RELEASE_15

public static final SourceVersion RELEASE_15
Версия, представленная в Java Platform, Standard Edition 15. Среди нововведений этого выпуска — текстовые блоки.
Начиная с:
15
См. также:
  • Спецификация языка Java, редакция Java SE 15
  • JEP 378: Текстовые блоки

RELEASE_16

public static final SourceVersion RELEASE_16
Версия, представленная в Java Platform, Standard Edition 16. Среди нововведений этого выпуска — записи и сопоставление с шаблоном для instanceof.
Начиная с:
16
См. также:
  • Спецификация языка Java, редакция Java SE 16
  • JEP 394: Сопоставление с шаблоном для instanceof
  • JEP 395: Записи

RELEASE_17

public static final SourceVersion RELEASE_17
Версия, представленная в Java Platform, Standard Edition 17. Среди нововведений этого выпуска — запечатанные классы и восстановление семантики вычислений с плавающей точкой, всегда соответствующей строгим правилам.
Начиная с:
17
См. также:
  • Спецификация языка Java, редакция Java SE 17
  • JEP 306: Восстановление семантики вычислений с плавающей точкой, всегда соответствующей строгим правилам
  • JEP 409: Запечатанные классы

RELEASE_18

public static final SourceVersion RELEASE_18
Версия, представленная в Java Platform, Standard Edition 18. Существенных изменений по сравнению с предыдущим выпуском нет.
Начиная с:
18
См. также:
  • Спецификация языка Java, редакция Java SE 18

RELEASE_19

public static final SourceVersion RELEASE_19
Версия, представленная в Java Platform, Standard Edition 19. Существенных изменений по сравнению с предыдущим выпуском нет.
Начиная с:
19
См. также:
  • Спецификация языка Java, редакция Java SE 19

RELEASE_20

public static final SourceVersion RELEASE_20
Версия, представленная в Java Platform, Standard Edition 20. Существенных изменений по сравнению с предыдущим выпуском нет.
Начиная с:
20
См. также:
  • Спецификация языка Java, редакция Java SE 20

RELEASE_21

public static final SourceVersion RELEASE_21
Версия, представленная в Java Platform, Standard Edition 21. Среди нововведений этого выпуска — шаблоны записей и сопоставление с шаблоном для switch.
Начиная с:
21
См. также:
  • Спецификация языка Java, редакция Java SE 21
  • JEP 440: Шаблоны записей
  • JEP 441: Сопоставление с шаблоном для switch

RELEASE_22

public static final SourceVersion RELEASE_22
Версия, представленная в Java Platform, Standard Edition 22. Среди нововведений этого выпуска — именованные переменные и шаблоны без имени.
Начиная с:
22
См. также:
  • Спецификация языка Java, редакция Java SE 22
  • JEP 456: Переменные и шаблоны без имени

RELEASE_23

public static final SourceVersion RELEASE_23
Версия, представленная в Java Platform, Standard Edition 23.
Начиная с:
23
См. также:
  • Спецификация языка Java, редакция Java SE 23

RELEASE_24

public static final SourceVersion RELEASE_24
Версия, представленная в Java Platform, Standard Edition 24.
Начиная с:
24
См. также:
  • Спецификация языка Java, редакция Java SE 24

RELEASE_25

public static final SourceVersion RELEASE_25
Версия, представленная в Java Platform, Standard Edition 25. Среди нововведений этого выпуска — объявления импорта модулей, компактные исходные файлы и методы main экземпляра, а также гибкие тела конструкторов.
Начиная с:
25
См. также:
  • Спецификация языка Java, редакция Java SE 25
  • JEP 511: Объявления импорта модулей
  • JEP 512: Компактные исходные файлы и методы main экземпляра
  • JEP 513: Гибкие тела конструкторов

RELEASE_26

public static final SourceVersion RELEASE_26
Версия, представленная в Java Platform, Standard Edition 26.
Начиная с:
26
См. также:
  • Спецификация языка Java, редакция Java SE 26

RELEASE_27

public static final SourceVersion RELEASE_27
Версия, представленная в Java Platform, Standard Edition 27.
Начиная с:
27
См. также:
  • Спецификация языка Java, редакция Java SE 27

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

values

public static SourceVersion[] values()
Возвращает массив, содержащий константы этого класса перечисления в порядке их объявления.
Возвращает:
массив, содержащий константы этого класса перечисления в порядке их объявления

valueOf

public static SourceVersion valueOf(String name)
Возвращает константу перечисления этого класса с указанным именем. Строка должна точно совпадать с идентификатором, использованным для объявления константы перечисления в этом классе. (Пробельные символы в начале и конце строки не допускаются.)
Параметры:
name — имя возвращаемой константы перечисления.
Возвращает:
константа перечисления с указанным именем
Выбрасывает:
IllegalArgumentException — если в этом классе перечисления нет константы с указанным именем
NullPointerException — если аргумент равен null

latest

public static SourceVersion latest()
Возвращает последнюю версию исходного кода, которую можно моделировать.
Возвращает:
последняя версия исходного кода, которую можно моделировать

latestSupported

public static SourceVersion latestSupported()
Возвращает последнюю версию исходного кода, полностью поддерживаемую текущей средой выполнения. Должна быть возвращена версия RELEASE_9 или более поздняя.
Примечание к API:
Этот метод включён наряду с latest(), чтобы можно было выявлять ситуации, когда API языковой модели выполняется на версии платформы, отличной от последней версии, моделируемой API. Такая ситуация может возникнуть, например, если IDE или аналогичный инструмент использует API для моделирования версии исходного кода N, работая на версии платформы (N - 1). Такая конфигурация поддерживается API. Работа API на версиях платформы ниже (N - 1) или выше N может поддерживаться или не поддерживаться в зависимости от деталей реализации. Если процессор аннотаций генерирует код для выполнения в текущей среде выполнения, ему следует использовать только возможности платформы вплоть до выпуска latestSupported, который может быть более ранним, чем выпуск latest.
Возвращает:
последняя версия исходного кода, полностью поддерживаемая текущей средой выполнения

isIdentifier

public static boolean isIdentifier(CharSequence name)
Возвращает, является ли name синтаксически допустимым идентификатором (простым именем) или ключевым словом в последней версии исходного кода. Метод возвращает true, если имя начинается с символа, для которого Character.isJavaIdentifierStart(int) возвращает true, а за ним следуют только символы, для которых Character.isJavaIdentifierPart(int) возвращает true. Этому шаблону соответствуют обычные идентификаторы, ключевые слова, контекстные ключевые слова, логические литералы и литерал null. Для всех остальных строк метод возвращает false.
Параметры:
name — проверяемая строка
Возвращает:
true, если эта строка является синтаксически допустимым идентификатором или ключевым словом; в противном случае — false.
См. Спецификацию языка Java:
3.8 Идентификаторы

isName

public static boolean isName(CharSequence name)
Возвращает, является ли name синтаксически допустимым квалифицированным именем в последней версии исходного кода. Синтаксически квалифицированное имя представляет собой последовательность идентификаторов, разделённых точками («.»). Этот метод разбивает входную строку на сегменты, разделённые точками, и поочерёдно проверяет каждый сегмент. В отличие от isIdentifier, этот метод возвращает false для ключевых слов, логических литералов и литерала null в любом сегменте. Для контекстных ключевых слов метод возвращает true.
Параметры:
name — проверяемая строка
Возвращает:
true, если эта строка является синтаксически допустимым именем; в противном случае — false.
См. Спецификацию языка Java:
3.9 Ключевые слова
6.2 Имена и идентификаторы

isName

public static boolean isName(CharSequence name, SourceVersion version)
Возвращает, является ли name синтаксически допустимым квалифицированным именем в указанной версии исходного кода. Синтаксически квалифицированное имя представляет собой последовательность идентификаторов, разделённых точками («.»). Этот метод разбивает входную строку на сегменты, разделённые точками, и поочерёдно проверяет каждый сегмент. В отличие от isIdentifier, этот метод возвращает false для ключевых слов, логических литералов и литерала null в любом сегменте. Для контекстных ключевых слов метод возвращает true.
Параметры:
name — проверяемая строка
version — используемая версия
Возвращает:
true, если эта строка является синтаксически допустимым именем; в противном случае — false.
См. Спецификацию языка Java:
3.9 Ключевые слова
6.2 Имена и идентификаторы
Начиная с:
9

isKeyword

public static boolean isKeyword(CharSequence s)
Возвращает, является ли s ключевым словом, логическим литералом или литералом null в последней версии исходного кода. Для контекстных ключевых слов метод возвращает false.
Параметры:
s — проверяемая строка
Возвращает:
true, если s является ключевым словом, логическим литералом или литералом null; в противном случае — false.
См. Спецификацию языка Java:
3.9 Ключевые слова
3.10.3 Логические литералы
3.10.8 Литерал null

isKeyword

public static boolean isKeyword(CharSequence s, SourceVersion version)
Возвращает, является ли s ключевым словом, логическим литералом или литералом null в указанной версии исходного кода. Для контекстных ключевых слов метод возвращает false.
Параметры:
s — проверяемая строка
version — используемая версия
Возвращает:
true, если s является ключевым словом, логическим литералом или литералом null; в противном случае — false.
См. Спецификацию языка Java:
3.9 Ключевые слова
3.10.3 Логические литералы
3.10.8 Литерал null
Начиная с:
9

valueOf

public static SourceVersion valueOf(Runtime.Version rv)
Возвращает последнюю версию исходного кода, пригодную для использования с переданной версией среды выполнения. Если функциональная версия версии среды выполнения выше функциональной версии версии среды выполнения для последней версии исходного кода, выбрасывается IllegalArgumentException.

Поскольку до сих пор версии исходного кода языка программирования Java развивались линейно, для определения соответствия версии исходного кода учитывается только компонент функциональной версии среды выполнения. Если в будущем эта линейность изменится, результат могут определять и другие компоненты версии среды выполнения.

Примечание к API:
Выражение для преобразования строкового значения, например "17", в соответствующую версию исходного кода, RELEASE_17, выглядит так:
SourceVersion.valueOf(Runtime.Version.parse("17"))
Параметры:
rv — версия среды выполнения, преобразуемая в версию исходного кода
Возвращает:
последняя версия исходного кода, пригодная для использования с переданной версией среды выполнения
Выбрасывает:
IllegalArgumentException — если функциональная версия аргумента выше функциональной версии платформы.
Начиная с:
18

runtimeVersion

public Runtime.Version runtimeVersion()
Возвращает минимальную версию среды выполнения, поддерживающую эту версию исходного кода; в противном случае — null. Возвращаемая версия среды выполнения имеет достаточно большую функциональную версию для поддержки этой версии исходного кода; остальные компоненты не заданы. Для версий исходного кода, больших или равных RELEASE_6, результат всегда не равен null.
Возвращает:
минимальная версия среды выполнения, поддерживающая эту версию исходного кода; в противном случае — null
Начиная с:
18

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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