WindowsでCheckStyleを使用していると「Got an exception – expecting EOF, found ….」というエラーが発生するとき

EclipseプラグインでCheckStyleを使用していると以下のような感じで、

赤色のエラーが出て使用できない場合があってとっても困ってた。

解決方法を探してググってみると、 どうもJavaの使う文字コード(WindowsなのでMS932)と別の文字コードで ソースを保存(自分はUTF-8にしてた)すると、 上記の事象が発生してしまうらしい。

他のサイトでは、CheckstyleのTreeWalkerにオプションを指定するという解決方法も載っているが、 自分のバージョンのCheckstyle(5.3)だと、試してみた結果この解決方法は使えない。エラーになってしまう。 どうするか考えた結果、自分一人で開発してるだけなので、 ソースを保存する文字コードをMS932に変更してしまうことで解決した。

本当はUTF-8のほうが他(Gitとか、もろもろ)ではまりにくいと思えるのだけど、 とりあえず目先の問題を解決するスタンスでやってみる。

クラス変数と継承

クラス変数は、そのクラスに存在するので、継承したときに継承したクラスの変数ができるわけではなく、 継承先の子から親の変数を指し示すことができるだけ。

class BaseClass @@s = “baseclass” def BaseClass.s @@s end def BaseClass.s=(val) @@s = val end end class ExtendClass < BaseClass end class ExtendClass2 < BaseClass end p BaseClass.s #=> “baseclass” p ExtendClass.s #=> “baseclass” p ExtendClass2.s #=> “baseclass” ExtendClass.s = “ab” p BaseClass.s #=> “ab” 親も変わる p ExtendClass.s #=> “ab” p ExtendClass2.s #=> [...]

eclipseのバージョンアップ(3.5 -> 3.6)

eclimを使おうと思ったら、eclipseのバージョンが3.6じゃないと ダメだということなので、バージョンアップ。

以下、手順のメモ。

自分はさほどカスタマイズしてなかったので、

とりあえずプラグインをexport 新規ソフトウェアのインストールから選択

使用可能なソフトウェア・サイトを選択

エクスポートを選択すると、xmlファイルにできるので保存。

eclipse本体を保存したフォルダを別名で保存

「別のプロセスがこのファイルを開いているので、操作を完了できません」のエラーが出る時は、processExplorerを使用して、 該当プロセスを探してkill processExplorerの使い方はこちらのページが詳しい

eclipseのダウンロード 今回はこれ。Eclipse Classic 3.6.0 手順は略

インストール後はにexportしたファイルをimportする。 (3.5専用のupdatesiteは手作業で修正)

必要なプラグインを選択して、install。 (ここまで実行して驚愕。 この手順だと以前にインストールされてた情報とかは保存されてないんだ。 そこが面倒なんだけど。)

とりあえず完了!

[...]

eclipseで、checkstyleを使ったときにゲッターセッターに警告が出て困る場合

たとえば、’hoge’がフィールドを隠していますとか、Parameter hoge sohuld be finalなどといった警告が出ます。 この場合は,基本的には警告を有効にしたまま,対象となるゲッターセッター部分だけを無効にしたいものです。

このように、ソースの一部だけcheckstyleの警告を無視させるためには,以下のように、 Filters->Suppresson Comment Filterを有効に設定(Addする)して,

無効にしたいソースコードのスタート部分に

// CHECKSTYLE:OFF

チェックを再度有効にしたいところに

// CHECKSTYLE:ON

と言うコメントを入れるといいです。