今朝、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での設定がない場合は、余分なセミコロンがエラーを生成してはなりません。