クラウドで 伸びる人沈む人 |
|
|
|
HttpServletで出る警告「serialVersionUID」について
<IT技術の処方箋:HttpServletで出る警告「serialVersionUID」について> EclipseでHttpServletを継承したクラス (いわゆるサーブレット)をつくると警告が出てきて、 「デフォルトのシリアルIDの追加」を要求されます。 その要求通りにEclipseでクリックすると、 private static final long serialVersionUID = 1L; みたいなソースが出てきて解決されますね。 ●一体これは何だろう?と思う方も多いでしょう。 HttpServletは、もともとは「Serializable」というインターフェースを 実装(implements)しています。 ↓のような感じで。 public abstract class HttpServlet extends GenericServlet implements java.io.Serializable で、「Serializable」を実装したクラスというのは、 インスタンス化するとバイト列でつくられるという特徴をもっています。 バイト列でつくられるということは、ファイルやデータとなって、 他のマシンや環境でも再生してやれば、 そのインスタンスを使えるということなのです。 その時に、もし他の環境でも同様なインスタンスが存在した場合は、 見分けが不可能となります。 そこで、serialVersionUIDというのをつけてキーとしたわけです。 簡単に言うと、万が一他の環境で使う場合のキーである。 と覚えておけばいいのです。 で、このキーが無いと他の環境で再現できない可能性があります。 ということで警告が出ているのですね。 まあ、実際はほとんど使わないので、 適当にEclipse任せで、IDを振ってもらえば、それでOKです。 |