1

サーブレットを拡張するシリアライズ可能なクラスがあります

public class FileDownload extends HttpServlet{
  @SuppressWarnings("compatibility:6754389671327954013")
  private static final long serialVersionUID = 1L;
  private ResultSet rset;
  ......
}

私の質問は:

オブジェクトはコンパイル時または実行時にrset自動的に変換されますか? transientまたは明示的にマークする必要がありtransientますか?(これは、IDE JDeveloper から出された警告です)。

4

2 に答える 2

2

いいえ、フィールドはシリアル化によって無視されません。java.io.NotSerializableExceptionのインスタンスをシリアル化しようとすると、 が得られますFileDownload。マークしtransientます。ところで、 はのフィールドResultSetとして何をしているのですか? これはスレッドセーフではありません。どのコンテキストでも、ローカル変数のみにする必要があります。ServletResultSets

于 2012-07-05T14:36:24.007 に答える
0

自分で呼び出す必要がありますが、インターフェイスを実装しない限りオブジェクトを呼び出すtransientことはできません。ResultSetはそのような種類のオブジェクトです。serializeSerializable

于 2012-07-05T14:25:21.867 に答える