-1

私は何人かのメンバーSerializedと一緒にクラスを持っています。transientこれらのメンバーの使用方法がわかりません。

public class ClientBeanBase extends BeanBase 
{

  protected REWSStubClient getServiceStub( boolean initSession ) 
  {     
    REWSStubClient stub = null;

    stub = (REWSStubClient) sessionVars.get(Constants.SESSION_KEY_STUB)             

    ...
}

私の基本クラスは次のとおりです。

public class BeanBase implements Serializable
{
  protected transient Map<String,Object> sessionVars = ...;
  ...
}

にいるのをsessionVars時々見かけます。で いつ使用できるかについて混乱していますか?nullgetServiceStub
sessionVarsClientBeanBase

4

3 に答える 3

1

お好きな時にご利用いただけますsessionVars

キーワードが行う唯一のことはtransient、オブジェクトのシリアル化の場合にその特定のフィールドをシリアル化しないように JVM に指示することです。つまり、オブジェクトが再作成されると、デフォルト値にリセットされます。

于 2013-05-09T11:30:15.693 に答える
0

インスタンスにローカルでアクセスしている場合、つまり、rmi を使用しない同じ jvm の下では、一時変数に値が表示されます。ただし、インスタンスをマーシャリングしている場合は、これらの変数に null が表示されます。

于 2013-05-09T11:32:16.773 に答える
0

シリアル化で一時変数がスキップされることは既にご存じかもしれません。いつでも参照できますが、使用する前に sessionVars を初期化する必要があります。コンストラクターで設定できます。

于 2013-05-09T11:30:57.917 に答える