不要なセミコロン構文エラーがありますか?

GhostCat敬礼モニカC.:

今朝、gitのリフレッシュを行った後、IntelliJのは、私のプロジェクトは、任意のよりきれいにコンパイルされなかったことを訴えました。犯人:

import javax.naming.Context;;

IntelliJのは、文句を言います:

エラー:(33、29)のjava:トークンの構文エラーは、 ";"、このトークンを削除します

このコードは、IntelliJのを使用していない人に押され、それが私たちのバックエンドのビルドを渡されました。

質問:障害時のjavacがある、またはIntelliJの?そして、何が明確化は、上記のコードは、エラーまたは警告であるべきかどうかというドキュメント/仕様でしょうか?

これは、MacOSの上で実行されている、IntelliJの2019.2 CE EAPです。

そして、ちょうど正確には:IntelliJの「エディタのコンパイル」、および「ビルド」アクションを打った結果との間に不一致があるようです。楽しい事実:我々は、我々のプロジェクトの設定で「使用日食コンパイラ」を持っています。;;使用javacの修正問題のこと、それを変更し、ダブル その後、単なる警告です。

ジョン・クーン:

よるJava言語仕様7.6 ;有効なタイプ宣言です。

トップレベルの型宣言は、トップレベルのクラスタイプ(宣言§8(クラス))、またはトップレベルのインタフェースタイプ(§9(インターフェイス))。

TypeDeclaration:

エクストラ「;」コンパイル単位内で型宣言のレベルに現れるトークンは、コンパイル単位の意味には影響しません。ストレイセミコロンは、単に置くために使用されているC ++プログラマへの譲歩として、Javaプログラミング言語で許可されています「;」クラス宣言の後。彼らは、新しいJavaコードで使用すべきではありません。

この動作を変更しますInteliJでの設定がない場合は、余分なセミコロンがエラーを生成してはなりません。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=329364&siteId=1