Когда Вы поместили бы точку с запятой после закрывающей фигурной скобки метода?

Я программировал в Java некоторое время, и я только что столкнулся с этим синтаксисом впервые:

public Object getSomething(){return something;}; 

То, что интересно меня, является заключительной точкой с запятой. Это, кажется, не вызывает ошибку компилятора, и насколько я знаю, не генерирует ошибки периода выполнения, таким образом, это, кажется, допустимый синтаксис. Когда я использовал бы этот синтаксис? Или это - просто что-то, что позволяется, но обычно не используется?

15
задан double-beep 24 March 2019 в 11:16
поделиться

3 ответа

Это допускается грамматикой как уступка безвредным синтаксическим ошибкам, но обычно не используется и не означает ничего другого (кроме точки с запятой) .

Так же, как }; внутри метод (например, после блока if ) является пустым оператором и разрешен, ошибочная точка с запятой вне метод считается пустым объявлением и разрешен.

В частности, это допускается следующей продукцией из Спецификации языка Java :

 ClassBodyDeclaration: 
; 
 [статические] Блок 
ModifiersOpt MemberDecl 
 
19
ответ дан 1 December 2019 в 01:05
поделиться

Это просто пустой оператор - скорее всего, это опечатка.

Учтите тот факт, что во всех языках на основе C оператор заканчивается точкой с запятой. Такая висящая точка с запятой просто завершает текущий оператор, который в данном случае не имеет значения.

11
ответ дан 1 December 2019 в 01:05
поделиться

Или это просто то, что разрешено, но обычно не используется?

Ага, вот и все. Это допустимая Java, но ничего не делает:

public class X  {
    ;;;;;;;;;;;;;;;;;;
    ;;;;;
    ;
}
9
ответ дан 1 December 2019 в 01:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: