Spec-Zone.ru › Java Language Specification 24

Глава 19. Синтаксис

В этой главе повторяется синтаксическая грамматика, представленная в главах 4, 6-10, 14 и 15, а также ключевые части лексической грамматики из главы 3, используя обозначения из §2.4.

Производства из §3 (Лексическая структура)

Идентификатор:
IdentifierChars но не Ключевое слово или Булево значение или NullLiteral
IdentifierChars:
JavaLetter {JavaLetterOrDigit}
JavaLetter:
любой символ Юникода, являющийся "буква Java"
JavaLetterOrDigit:
любой символ Юникода, являющийся "буквой или цифрой Java"
TypeIdentifier:
Идентификатор но не permits, record, sealed, var, или yield
UnqualifiedMethodIdentifier:
Идентификатор но не yield
Literal:
Целочисленная константа
Константа с плавающей точкой
Булево значение
Символьная константа
Строковая константа
TextBlock
NullLiteral

Производства из §4 (Типы, значения и переменные)

Тип:
Примитивный тип
Ссылочный тип
Примитивный тип:
{Аннотация} Числовой тип
{Аннотация} boolean
Числовой тип:
Целочисленный тип
Тип с плавающей точкой
Целочисленный тип:
(один из)
byte short int long char
Тип с плавающей точкой:
(один из)
float double
Ссылочный тип:
Тип класса или интерфейса
Параметр типа
Массивный тип
Тип класса или интерфейса:
Тип класса
Тип интерфейса
Тип класса:
{Аннотация} Идентификатор типа [Аргументы типа]
Имя пакета . {Аннотация} Идентификатор типа [Аргументы типа]
Тип класса или интерфейса . {Аннотация} Идентификатор типа [Аргументы типа]
Тип интерфейса:
Тип класса
Параметр типа:
{Аннотация} Идентификатор типа [Границы типа]
Модификатор параметра типа:
Аннотация
Границы типа:
extends Параметр типа
extends Тип класса или интерфейса {Дополнительная граница}
Дополнительная граница:
& Тип интерфейса
Аргументы типа:
< Список аргументов типа >
Список аргументов типа:
Аргумент типа {, Аргумент типа}
Аргумент типа:
Ссылочный тип
Подстановочный символ
Подстановочный символ:
{Аннотация} ? [Границы подстановочного символа]
Границы подстановочного символа:
extends Ссылочный тип
super Ссылочный тип

Производные из §6 (Имена)

Имя модуля:
Идентификатор
Имя модуля . Идентификатор
Имя пакета:
Идентификатор
Имя пакета . Идентификатор
Имя типа:
Идентификатор типа
Имя пакета или типа . Идентификатор типа
Имя выражения:
Идентификатор
Неоднозначное имя . Идентификатор
Имя метода:
Идентификатор метода без квалификатора
Имя пакета или типа:
Идентификатор
Имя пакета или типа . Идентификатор
Неоднозначное имя:
Идентификатор
Неоднозначное имя . Идентификатор

Производные из §7 (Пакеты и модули)

Единица компиляции:
Единица обычной компиляции
Единица модульной компиляции
Единица обычной компиляции:
[Декларация пакета] {Декларация импорта} {Декларация класса или интерфейса верхнего уровня}
Единица модульной компиляции:
{Декларация импорта} Декларация модуля
Декларация пакета:
{Модификатор пакета} package Идентификатор {. Идентификатор} ;
Модификатор пакета:
Аннотация
Декларация импорта:
Декларация импорта одного типа
Декларация импорта всех типов из пакета
Декларация статического импорта одного члена
Декларация статического импорта всех членов
Декларация импорта одного типа:
import Имя типа ;
Декларация импорта всех типов из пакета:
import Имя пакета или типа . * ;
Декларация статического импорта одного члена:
import static Имя типа . Идентификатор ;
Декларация статического импорта всех членов:
import static Имя типа . * ;
Декларация класса или интерфейса верхнего уровня:
Декларация класса
Декларация интерфейса
;
Декларация модуля:
{Аннотация} [open] module Идентификатор {. Идентификатор} { {Директива модуля} }
Директива модуля:
requires {Модификатор Requires} Имя модуля ;
exports Имя пакета [to Имя модуля {, Имя модуля}] ;
opens Имя пакета [to Имя модуля {, Имя модуля}] ;
uses Имя типа ;
provides Имя типа with Имя типа {, Имя типа} ;
Модификатор Requires:
(one of)
transitive static

Производные из §8 (Классы)

ClassDeclaration:
NormalClassDeclaration
EnumDeclaration
RecordDeclaration
NormalClassDeclaration:
{МодификаторКласса} class ИдентификаторТипа [ПараметрыТипа] [НаследуетОт] [РеализуетИнтерфейсы] [Разрешает] ТелоКласса
ClassModifier:
(один из)
Аннотация public protected private
abstract static final sealed non-sealed strictfp
ПараметрыТипа:
< СписокПараметровТипа >
СписокПараметровТипа:
ПараметрТипа {, ПараметрТипа}
НаследуетОт:
extends ТипКласса
РеализуетИнтерфейсы:
implements СписокТиповИнтерфейсов
СписокТиповИнтерфейсов:
ТипИнтерфейса {, ТипИнтерфейса}
Разрешает:
permits ИмяТипа {, ИмяТипа}
ТелоКласса:
{ {ОбъявлениеТелаКласса} }
ОбъявлениеТелаКласса:
ОбъявлениеЧленаКласса
ИнициализаторОбъекта
СтатическийИнициализатор
ОбъявлениеКонструктора
ОбъявлениеЧленаКласса:
ОбъявлениеПоля
ОбъявлениеМетода
ОбъявлениеВложенногоКласса
ОбъявлениеИнтерфейса
;
ОбъявлениеПоля:
{МодификаторПоля} ТипБезАннотаций СписокОбъявленийПеременных ;
МодификаторПоля:
(один из)
Аннотация public protected private
static final transient volatile
СписокОбъявленийПеременных:
ОбъявлениеПеременной {, ОбъявлениеПеременной}
ОбъявлениеПеременной:
ИдентификаторОбъявленияПеременной [= ИнициализаторПеременной]
ИдентификаторОбъявленияПеременной:
Идентификатор [Размеры]
_
ИнициализаторПеременной:
Выражение
ИнициализаторМассива
ТипБезАннотаций:
ПримитивныйТипБезАннотаций
СсылкаБезАннотаций
ПримитивныйТипБезАннотаций:
ЧисловойТип
boolean
СсылкаБезАннотаций:
ТипКлассаИлиИнтерфейсаБезАннотаций
ПеременнаяТипаБезАннотаций
МассивБезАннотаций
ТипКлассаИлиИнтерфейсаБезАннотаций:
ТипКлассаБезАннотаций
ТипИнтерфейсаБезАннотаций
ТипКлассаБезАннотаций:
ИдентификаторТипа [АргументыТипа]
ИмяПакеты . {Аннотация} ИдентификаторТипа [АргументыТипа]
ТипКлассаИлиИнтерфейсаБезАннотаций . {Аннотация} ИдентификаторТипа [АргументыТипа]
ТипИнтерфейсаБезАннотаций:
ТипКлассаБезАннотаций
ПеременнаяТипаБезАннотаций:
ИдентификаторТипа
МассивБезАннотаций:
ПримитивныйТипБезАннотаций Размеры
ТипКлассаИлиИнтерфейсаБезАннотаций Размеры
ПеременнаяТипаБезАннотаций Размеры
ОбъявлениеМетода:
{МодификаторМетода} ЗаголовокМетода ТелоМетода
МодификаторМетода:
(один из)
Аннотация public protected private
abstract static final synchronized native strictfp
ЗаголовокМетода:
Результат ДеклараторМетода [Исключения]
ПараметрыТипа {Аннотация} Результат ДеклараторМетода [Исключения]
Результат:
ТипБезАннотаций
void
МетодДекларатор:
Идентификатор ( [ПараметрПолучателя ,] [СписокФормальныхПараметров] ) [Размеры]
ПараметрПолучателя:
{Аннотация} ТипБезАннотаций [Идентификатор .] this
СписокФормальныхПараметров:
ФормальныйПараметр {, ФормальныйПараметр}
ФормальныйПараметр:
{МодификаторПеременной} ТипБезАннотаций ИдентификаторДекларатораПеременной
ПараметрПеременнойАрности
ПараметрПеременнойАрности:
{МодификаторПеременной} ТипБезАннотаций {Аннотация} ... Идентификатор
МодификаторПеременной:
Аннотация
final
Исключения:
throws СписокТиповИсключений
СписокТиповИсключений:
ТипИсключения {, ТипИсключения}
ТипИсключения:
ТипКласса
ПеременнаяТипа
ТелоМетода:
Блок
;
ИнициализаторЭкземпляра:
Блок
СтатическийИнициализатор:
static Блок
ДекларацияКонструктора:
{МодификаторКонструктора} ДеклараторКонструктора [Исключения] ТелоКонструктора
МодификаторКонструктора:
(один из)
Аннотация public protected private
ДеклараторКонструктора:
[ПараметрыТипов] ПростоеИмяТипа ( [ПараметрПолучателя ,] [СписокФормальныхПараметров] )
ПростоеИмяТипа:
ИдентификаторТипа
ТелоКонструктора:
{ [ЯвноеВызовКонструктора] [БлочныеВыражения] }
ЯвноеВызовКонструктора:
[АргументыТипов] this ( [СписокАргументов] ) ;
[АргументыТипов] super ( [СписокАргументов] ) ;
ИмяВыражения . [АргументыТипов] super ( [СписокАргументов] ) ;
Основное . [АргументыТипов] super ( [СписокАргументов] ) ;
ДекларацияПеречисления:
{МодификаторКласса} enum ИдентификаторТипа [РеализуетКласс] ТелоПеречисления
ТелоПеречисления:
{ [СписокПостоянныхПеречисления] [,] [ДекларацииТелаПеречисления] }
СписокПостоянныхПеречисления:
ПостояннаяПеречисления {, ПостояннаяПеречисления}
ПостояннаяПеречисления:
{МодификаторПостояннойПеречисления} Идентификатор [( [СписокАргументов] )] [ТелоКласса]
МодификаторПостояннойПеречисления:
Аннотация
ДекларацииТелаПеречисления:
; {ДекларацияТелаКласса}
ДекларацияЗаписи:
{МодификаторКласса} record ИдентификаторТипа [ПараметрыТипов] ЗаголовокЗаписи [РеализуетКласс] ТелоЗаписи
ЗаголовокЗаписи:
( [СписокКомпонентовЗаписи] )
СписокКомпонентовЗаписи:
КомпонентЗаписи {, КомпонентЗаписи}
КомпонентЗаписи:
{МодификаторКомпонентаЗаписи} ТипБезАннотаций Идентификатор
КомпонентПеременнойАрности
КомпонентПеременнойАрности:
{МодификаторКомпонентаЗаписи} ТипБезАннотаций {Аннотация} ... Идентификатор
МодификаторКомпонентаЗаписи:
Аннотация
ТелоЗаписи:
{ {ДекларацияТелаЗаписи} }
RecordBodyDeclaration:
Объявление тела класса
Компактное объявление конструктора
CompactConstructorDeclaration:
{Модификатор конструктора} Простое имя типа Тело конструктора

Производные из §9 (Интерфейсы)

InterfaceDeclaration:
Обычное объявление интерфейса
Объявление аннотационного интерфейса
NormalInterfaceDeclaration:
{Модификатор интерфейса} interface Идентификатор типа [Параметры типа] [Расширения интерфейса] [Разрешения интерфейса] Тело интерфейса
InterfaceModifier:
(один из)
Аннотация public protected private
abstract static sealed non-sealed strictfp
InterfaceExtends:
extends Список типов интерфейса
InterfacePermits:
permits Имя типа {, Имя типа}
InterfaceBody:
{ {Объявление члена интерфейса} }
InterfaceMemberDeclaration:
Объявление константы
Объявление метода интерфейса
Объявление класса
Объявление интерфейса
;
ConstantDeclaration:
{Модификатор константы} Тип без аннотаций Список объявленных переменных ;
ConstantModifier:
(один из)
Аннотация public
static final
InterfaceMethodDeclaration:
{Модификатор метода интерфейса} Заголовок метода Тело метода
InterfaceMethodModifier:
(один из)
Аннотация public private
abstract default static strictfp
AnnotationInterfaceDeclaration:
{Модификатор интерфейса} @ interface Идентификатор типа Тело аннотационного интерфейса
AnnotationInterfaceBody:
{ {Объявление члена аннотационного интерфейса} }
AnnotationInterfaceMemberDeclaration:
Объявление элемента аннотационного интерфейса
Объявление константы
Объявление класса
Объявление интерфейса
;
AnnotationInterfaceElementDeclaration:
{Модификатор элемента аннотационного интерфейса} Тип без аннотаций Идентификатор ( ) [Размеры] [Значение по умолчанию] ;
AnnotationInterfaceElementModifier:
(один из)
Аннотация public
abstract
DefaultValue:
default Значение элемента
Annotation:
Нормальная аннотация
Аннотация-метка
Аннотация с одним элементом
NormalAnnotation:
@ Имя типа ( [Список пар значение-имя элемента] )
ElementValuePairList:
Пара значение-имя элемента {, Пара значение-имя элемента}
ElementValuePair:
Идентификатор = Значение элемента
ElementValue:
Условное выражение
Инициализатор массива значений элемента
Аннотация
ElementValueArrayInitializer:
{ [Список значений элемента] [,] }
ElementValueList:
Значение элемента {, Значение элемента}
MarkerAnnotation:
@ Имя типа
SingleElementAnnotation:
@ Имя типа ( Значение элемента )

Производные из §10 (Массивы)

ArrayInitializer:
{ [Список инициализаторов переменных] [,] }
VariableInitializerList:
Инициализатор переменной {, Инициализатор переменной}

Производные из §14 (Блоки, операторы и шаблоны)

Блок:
{ [БлокОператоров] }
БлокОператоров:
ОператорБлока {ОператорБлока}
ОператорБлока:
ОбъявлениеЛокальногоКлассаИлиИнтерфейса
ОбъявлениеЛокальнойПеременной
Оператор
ОбъявлениеЛокальногоКлассаИлиИнтерфейса:
ОбъявлениеКласса
ОбъявлениеИнтерфейса
ОбъявлениеЛокальнойПеременной:
{МодификаторПеременной} ТипЛокальнойПеременной СписокДеклараторовПеременных
ТипЛокальнойПеременной:
ТипБезАннотаций
var
Оператор:
ОператорБезПоследующегоПодвыражения
ОператорСМетка
ОператорЕсли
ОператорЕслиИначе
ОператорПока
ОператорДля
ОператорБезКороткогоЕсли:
ОператорБезПоследующегоПодвыражения
ОператорСМеткаБезКороткогоЕсли
ОператорЕслиИначеБезКороткогоЕсли
ОператорПокаБезКороткогоЕсли
ОператорДляБезКороткогоЕсли
ОператорБезПоследующегоПодвыражения:
Блок
ПустойОператор
ОператорВыражения
ОператорАссерта
ОператорПереключатель
ОператорПовторять
ОператорПрервать
ОператорПродолжить
ОператорВозврата
ОператорСинхронизации
ОператорВыбросить
ОператорОбработкиИсключений
ОператорВыход
ПустойОператор:
;
ОператорСМетка:
Идентификатор : Оператор
ОператорСМеткаБезКороткогоЕсли:
Идентификатор : ОператорБезКороткогоЕсли
ОператорВыражения:
ВыражениеОператора ;
ВыражениеОператора:
Присваивание
ПрефиксныйИнкремент
ПрефиксныйДекремент
ПостфиксныйИнкремент
ПостфиксныйДекремент
ВызовМетода
ВыражениеСозданияЭкземпляраКласса
ОператорЕсли:
if ( Выражение ) Оператор
ОператорЕслиИначе:
if ( Выражение ) ОператорБезКороткогоЕсли else Оператор
ОператорЕслиИначеБезКороткогоЕсли:
if ( Выражение ) ОператорБезКороткогоЕсли else ОператорБезКороткогоЕсли
ОператорАссерта:
assert Выражение ;
assert Выражение : Выражение ;
ОператорПереключатель:
switch ( Выражение ) БлокПереключателя
БлокПереключателя:
{ ПравилоПереключателя {ПравилоПереключателя} }
{ {ГруппаОператоровБлокаПереключателя} {МеткаПереключателя :} }
ПравилоПереключателя:
МеткаПереключателя -> Выражение ;
МеткаПереключателя -> Блок
МеткаПереключателя -> ОператорВыбросить
ГруппаОператоровБлокаПереключателя:
МеткаПереключателя : {МеткаПереключателя :} БлокОператоров
МеткаПереключателя:
case ПостояннаяСлучай {, ПостояннаяСлучай}
case null [, default]
case ШаблонСлучай {, ШаблонСлучай} [Условие]
default
ПостояннаяСлучай:
УсловноеВыражение
CasePattern:
Шаблон
Guard:
when Выражение
WhileStatement:
while ( Выражение ) Оператор
WhileStatementNoShortIf:
while ( Выражение ) ОператорБезКороткийIf
DoStatement:
do Оператор while ( Выражение ) ;
ForStatement:
ОператорBasicFor
УлучшенныйОператорFor
ForStatementNoShortIf:
ОператорBasicForБезКороткийIf
УлучшенныйОператорForБезКороткийIf
BasicForStatement:
for ( [ИнициализацияFor] ; [Выражение] ; [ОбновлениеFor] ) Оператор
BasicForStatementNoShortIf:
for ( [ИнициализацияFor] ; [Выражение] ; [ОбновлениеFor] ) ОператорБезКороткийIf
ForInit:
СписокВыраженийОператора
ЛокальноеОбъявлениеПеременных
ForUpdate:
СписокВыраженийОператора
StatementExpressionList:
ОператорВыражения {, ОператорВыражения}
EnhancedForStatement:
for ( ЛокальноеОбъявлениеПеременных : Выражение ) Оператор
EnhancedForStatementNoShortIf:
for ( ЛокальноеОбъявлениеПеременных : Выражение ) ОператорБезКороткийIf
BreakStatement:
break [Идентификатор] ;
YieldStatement:
yield Выражение ;
ContinueStatement:
continue [Идентификатор] ;
ReturnStatement:
return [Выражение] ;
ThrowStatement:
throw Выражение ;
SynchronizedStatement:
synchronized ( Выражение ) Блок
TryStatement:
try Блок ОбработкаИсключений
try Блок [ОбработкаИсключений] Finally
TryWithResourcesОператор
Catches:
ОбработкаИсключения {ОбработкаИсключения}
CatchClause:
catch ( ПараметрОбработкиИсключения ) Блок
CatchFormalParameter:
{МодификаторыПеременных} ТипОбработкиИсключения ИдентификаторОбъявленияПеременной
CatchType:
ТипБезАннотаций {| ТипКласса}
Finally:
finally Блок
TryWithResourcesStatement:
try УказаниеРесурсов Блок [ОбработкаИсключений] [Finally]
ResourceSpecification:
( СписокРесурсов [;] )
ResourceList:
Ресурс {; Ресурс}
Resource:
ЛокальноеОбъявлениеПеременных
ДоступКПеременной
VariableAccess:
ИмяВыражения
ДоступКПолю
Pattern:
ТипШаблон
ШаблонЗаписи
TypePattern:
ЛокальноеОбъявлениеПеременных
RecordPattern:
ТипСсылка ( [СписокКомпонентныхШаблонов] )
ComponentPatternList:
КомпонентныйШаблон {, КомпонентныйШаблон }
ComponentPattern:
Шаблон
MatchAllPattern
MatchAllPattern:
_

Производные из §15 (Выражения)

Primary:
PrimaryNoNewArray
Выражение создания массива
PrimaryNoNewArray:
Литтерал
Литерал класса
this
Имя типа . this
( Выражение )
Выражение создания экземпляра класса
Доступ к полю
Доступ к элементу массива
Вызов метода
Ссылка на метод
ClassLiteral:
Имя типа {[ ]} . class
Числовой тип {[ ]} . class
boolean {[ ]} . class
void . class
ClassInstanceCreationExpression:
Выражение создания экземпляра без квалификатора
Имя выражения . Выражение создания экземпляра без квалификатора
Primary . Выражение создания экземпляра без квалификатора
UnqualifiedClassInstanceCreationExpression:
new [Аргументы типа] Тип класса или интерфейса для создания экземпляра ( [Список аргументов] ) [Тело класса]
ClassOrInterfaceTypeToInstantiate:
{Аннотация} Идентификатор {. {Аннотация} Идентификатор} [Аргументы типа или алмаз]
TypeArgumentsOrDiamond:
Аргументы типа
<>
ArrayCreationExpression:
Выражение создания массива без инициализатора
Выражение создания массива с инициализатором
ArrayCreationExpressionWithoutInitializer:
new Примитивный тип Выражения размерности [Размеры]
new Тип класса или интерфейса Выражения размерности [Размеры]
ArrayCreationExpressionWithInitializer:
new Примитивный тип Размеры Инициализатор массива
new Тип класса или интерфейса Размеры Инициализатор массива
DimExprs:
Выражение размерности {Выражение размерности}
DimExpr:
{Аннотация} [ Выражение ]
ArrayAccess:
Имя выражения [ Выражение ]
PrimaryNoNewArray [ Выражение ]
Выражение создания массива с инициализатором [ Выражение ]
FieldAccess:
Primary . Идентификатор
super . Идентификатор
Имя типа . super . Идентификатор
MethodInvocation:
Имя метода ( [Список аргументов] )
Имя типа . [Аргументы типа] Идентификатор ( [Список аргументов] )
Имя выражения . [Аргументы типа] Идентификатор ( [Список аргументов] )
Primary . [Аргументы типа] Идентификатор ( [Список аргументов] )
super . [Аргументы типа] Идентификатор ( [Список аргументов] )
Имя типа . super . [Аргументы типа] Идентификатор ( [Список аргументов] )
ArgumentList:
Выражение {, Выражение}
MethodReference:
Имя выражения :: [Аргументы типа] Идентификатор
Основной :: [Аргументы типа] Идентификатор
Тип ссылки :: [Аргументы типа] Идентификатор
super :: [Аргументы типа] Идентификатор
Имя типа . super :: [Аргументы типа] Идентификатор
Тип класса :: [Аргументы типа] new
Массивы :: new
Выражение:
Lambda-выражение
Выражение присваивания
Lambda-выражение:
Параметры Lambda -> Тело Lambda
Параметры Lambda:
( [Список параметров Lambda] )
Лаконичный параметр Lambda
Список параметров Lambda:
Нормальный параметр Lambda {, Нормальный параметр Lambda}
Лаконичный параметр Lambda {, Лаконичный параметр Lambda}
Нормальный параметр Lambda:
{Модификатор переменной} Тип параметра Lambda Идентификатор объявления переменной
Параметр переменной арности
Тип параметра Lambda:
Тип без аннотаций
var
Лаконичный параметр Lambda:
Идентификатор
_
Тело Lambda:
Выражение
Блок
Выражение присваивания:
Условное выражение
Присваивание
Присваивание:
Левая часть Оператор присваивания Выражение
Левая часть:
Имя выражения
Доступ к полю
Доступ к массиву
Оператор присваивания:
(один из)
=  *=  /=  %=  +=  -=  <<=  >>=  >>>=  &=  ^=  |=
Условное выражение:
Условное ИЛИ
Условное ИЛИ ? Выражение : Условное выражение
Условное ИЛИ ? Выражение : Lambda-выражение
Условное ИЛИ:
Условное И
Условное ИЛИ || ConditionalAndExpression
Условное И:
Исключающее ИЛИ
Условное И && Исключающее ИЛИ
Исключающее ИЛИ:
И
Исключающее ИЛИ | И
И:
Равенство
И & Равенство
Равенство:
Отношение
Равенство == Отношение
Равенство != Отношение
Отношение:
Сдвиг
Отношение < Сдвиг
Отношение > Сдвиг
Отношение <= Сдвиг
Отношение >= Сдвиг
Оператор instanceof
Оператор instanceof:
Отношение instanceof Тип ссылки
Отношение instanceof Шаблон
ShiftExpression:
Арифметическое выражение
Выражение сдвига << Арифметическое выражение
Выражение сдвига >> Арифметическое выражение
Выражение сдвига >>> Арифметическое выражение
AdditiveExpression:
Множительное выражение
Арифметическое выражение + Множительное выражение
Арифметическое выражение - Множительное выражение
MultiplicativeExpression:
Унарное выражение
Множительное выражение * Унарное выражение
Множительное выражение / Унарное выражение
Множительное выражение % Унарное выражение
UnaryExpression:
Префиксный инкремент
Префиксный декремент
+ Унарное выражение
- Унарное выражение
Унарное выражение (кроме + и -)
PreIncrementExpression:
++ Унарное выражение
PreDecrementExpression:
-- Унарное выражение
UnaryExpressionNotPlusMinus:
Постфиксное выражение
~ Унарное выражение
! Унарное выражение
Выражение приведения типов
Выражение переключения
PostfixExpression:
Основное
Имя выражения
Постфиксный инкремент
Постфиксный декремент
PostIncrementExpression:
Постфиксное выражение ++
PostDecrementExpression:
Постфиксное выражение --
CastExpression:
( Примитивный тип ) Унарное выражение
( Тип ссылки {Дополнительное ограничение} ) Унарное выражение (кроме + и -)
( Тип ссылки {Дополнительное ограничение} ) Lambda-выражение
SwitchExpression:
switch ( Выражение ) Блок переключения

© Oracle and/or its affiliates. All rights reserved.
Licensed under the Oracle Technology Network License Agreement.

Spec-Zone.ru

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