Spec-Zone.ru › OpenJDK 25

Класс-перечисление 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>

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

Константа перечисления Описание
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_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

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

getClass, notify, notifyAll, wait, wait, wait

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

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. К новым возможностям этой версии относятся ромбовидный синтаксис для конструкторов, конструкция try-with-resources, строки в switch, двоичные литералы и несколько блоков 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: Гибкие тела конструкторов

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

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)
Возвращает последнюю версию исходного кода, пригодную для использования с указанной версией среды выполнения. Если значение feature версии среды выполнения больше значения feature версии среды выполнения последней версии исходного кода, выбрасывается исключение IllegalArgumentException.

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

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

runtimeVersion

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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, в том числе обзоры концепций, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/lang/model/SourceVersion.html

Spec-Zone.ru

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