んと,どっから説明したらいいんだろ.とりあえず,serialVersionUID から説明すると,Serializable インターフェースを実装してるクラスは,private static final フィールドとして保持しといた方がいいよってものらしい.(詳しくは,リンク先を見てくれぃ.)
じゃ,なんで例外クラスを定義しようとしてたらそれが出てきたかっていうと,Throwable クラスがそれを実装してるから.なんでかはよくわかってない・・・.
ということで,その serialVersionUID なるものを生成するツールが serialver なのだ.その使い方は次のとおり.(NetBeans プロジェクト前提だよ〜.)
プロジェクト名:Example
完全クラス名(パッケージ名含む.):org.legna.example.ExampleException
$ serialver -J-Dfile.encoding=UTF-8 -classpath ~/NetBeansProjects/Example/build/classes org.legna.example.ExampleException
というかんじ.-J オプション以下は文字化け対策で,java の出力を UTF-8 にしてる.(オプション指定しても,ターミナルが UTF-8 設定じゃないと化けるけどねw)-classpath オプションは,そのままクラスの入ってるディレクトリへのパス.最後に,完全クラス名を指定する.
ここら辺の話ってよくわかんないね.それに,例外の話がきちんと載ってるところって少ないよね.
0 件のコメント:
コメントを投稿