Jdk

checkstyleに例外があります-EOFを期待して、「xxx」の問題が見つかりました



Checkstyles Got An Exception Expecting Eof



コードチェックスタイルのフォーマットチェックツールとして使用されていましたが、最近プロジェクトでJDK7にアップグレードされ、エラーが発生することがありました

例外が発生しました-EOFを期待して、「for」が見つかりました

例外が発生しました-EOFを期待し、 '}'などが見つかり、さまざまなタイプの引用符でさまざまなコンテンツが見つかりました。心を愛する、なぜ私たちはファイルの終わりがそれを期待する必要があります。常にプラグバグだと思っていましたが、単に無視されていませんでした。

最近、すべてのチェックスタイルの問題を一掃するという目標を設定しました。この問題を再検討します。
使用している主な問題のcheckstyleバージョンは、JAVA7の新機能をサポートしていません(または互換性のあるjava7の新機能にはバグがあります)。栗の場合:

Java7のように、新しいキーワードの背後で省略されるのは、コンパイラがの一般的な定義を自動的に識別することです。 Map myMap = new HashMap()参照は次のようになります:[url] http://docs.oracle.com/javase/7/docs/technotes/guides/language/type-in​​ference-generic-instance-creation.html [/ url]

ただし、checkstyleは新機能を認識しないため、検査に合格するには、ジェネリック型内で要件を完了する必要があります。 Map myMap = new HashMap()

同様に、他の新機能java7またはjava8もこの問題を引き起こす可能性があります。たとえば、複数の異常なキャプチャ:
catch(IOException|NullPointerException e){
}

java、java 7/8のその他の新機能については、リリースノートを参照してください。
[url] http://www.oracle.com/technetwork/java/javase/jdk7-relnotes-418459.html [/ url]
[url] http://www.oracle.com/technetwork/java/javase/8all-relnotes-2226344.html [/ url]

PS:checkstyleの公式説明5.5および5.9バージョンは、Java7、Java8文法と互換性があります。しかし、テスト後もバグが存在する場合があります。