レポ
クラウドで
伸びる人沈む人

連絡特定商取引将来設計運営方針&メルマガSEの彼女は?
成功レポート集 Fedora9インストール! EclipseでJava Oracleバックアップのアーキテクチャ ゼロからHPでCGI 便利ネット知識
無料レポ&講習 IT業界の実態 linux処方箋 Java処方箋 Oracle処方箋 Perl処方箋
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です。
さらに補講教材があります。
以下をクリックしてください。

新人用Java勉強環境の準備

Servlet初心者が勘違いする「典型的な間違い」

クラウドで伸びる人沈む人 ||Copyright © 2005-2020 SearchMan,All Rights Reserved.