Я программировал в Java некоторое время, и я только что столкнулся с этим синтаксисом впервые:
public Object getSomething(){return something;};
То, что интересно меня, является заключительной точкой с запятой. Это, кажется, не вызывает ошибку компилятора, и насколько я знаю, не генерирует ошибки периода выполнения, таким образом, это, кажется, допустимый синтаксис. Когда я использовал бы этот синтаксис? Или это - просто что-то, что позволяется, но обычно не используется?
Это допускается грамматикой как уступка безвредным синтаксическим ошибкам, но обычно не используется и не означает ничего другого (кроме точки с запятой) .
Так же, как };
внутри метод (например, после блока if
) является пустым оператором и разрешен, ошибочная точка с запятой вне метод считается пустым объявлением и разрешен.
В частности, это допускается следующей продукцией из Спецификации языка Java :
ClassBodyDeclaration: ; [статические] Блок ModifiersOpt MemberDecl
Это просто пустой оператор - скорее всего, это опечатка.
Учтите тот факт, что во всех языках на основе C оператор заканчивается точкой с запятой. Такая висящая точка с запятой просто завершает текущий оператор, который в данном случае не имеет значения.
Или это просто то, что разрешено, но обычно не используется?
Ага, вот и все. Это допустимая Java, но ничего не делает:
public class X {
;;;;;;;;;;;;;;;;;;
;;;;;
;
}