久しぶりに

Eclipseの3.1を入れ、久しぶりにJavaに触ってみた。まぁ、入れるだけなら、すぐ出来るからね。ちょっと、プログラムを書いてみますか。HelloWorldをSwingでやりましょ。新しいプロジェクトを作って、とりあえず、JFrameをスーパークラスにして、mainを含むようにしてクラスを追加してみる。何の気なしに、スーパークラスからコンストラクタを作るチェックボックスをチェックすると、知らないコンストラクタが出てきた。

頭がない

GraphicConfigurationとか、HeadlessExceptionってなんだ。Java2 SDKの1.4.2で、コンソールがない場合のサポートが付いた、という話は聞いていた。GraphicConfigurationの方は、ダブルスクリーンとかを生かせるようになるってことね。こういうクラスのインスタンスが引数で渡されてくるのっていいかも。

なんの警告

Eclipseが警告を出してきた。"does not declare a static final serialVersionUID field of type long"。これは、以前は見たことがなかったぞ。警告のアイコンをクリックすると、

  • Add default serial version ID
  • Add generated serial version ID

なんてのが出てくるし。
serialVersionUID自体は、今まで気づかなかったけど、SerializeされたクラスのユニークなIDを示していて、JDKの1.1のころからあるものみたい。確かに、それを算出するserialverっていうコマンドもあったね。
調べてみると、Eclipseの3.1の新しい機能で、serialVersionUIDが宣言されてない場合には、Potential programming problemsとして、警告を出すみたいね。Seriarizableとか、ObjectStreamClassなんて、新しいものじゃないし、なんで今頃、こんな機能が付いたんだ。PriferenceでError/Worning/Ignoreを変更できるみたいだから、以前のバージョンのEclipseで作ったプログラムを扱う場合、Ignoreにしておきたいところだけど、どんなもんだろう。