質問

すべての生成とwebservice-スタブからバックエンドしてequals法本:

private java.lang.Object __equalsCalc = null;
public synchronized boolean equals(java.lang.Object obj) {
    if (!(obj instanceof PropertyData)) return false;
    PropertyData other = (PropertyData) obj;
    if (obj == null) return false;
    if (this == obj) return true;
    if (__equalsCalc != null) {
        return (__equalsCalc == obj);
    }
    __equalsCalc = obj;
    boolean _equals;
    _equals = true && 
        ((this.key==null && other.getKey()==null) || 
         (this.key!=null &&
          this.key.equals(other.getKey()))) &&
        ((this.value==null && other.getValue()==null) || 
         (this.value!=null &&
          this.value.equals(other.getValue())));
    __equalsCalc = null;
    return _equals;
}

で誰か教えてください私にとってpurpoiseの __equalsCalc?んっておきたいところです。用を行わないどこかのクラスです。のっとっては、それがnullではなく正確に計算中には、"均等"と同時に、".しかし、equalsは宣言された synchronized.そこで唯一のスレッドはいつでもすることができるものとします。見えないことに気づいたぜ if (__equalsCalc != null) る必要がtrueとなります。

してくださいしっか誤解;-)

編集:これまでのプロジェクトでの私の答えが誤っている可能性があります。がん微量で正しい方法で生成される軸-wsdl2java

役に立ちましたか?

解決

思いを停止させようとしてい再帰-な場合は、そのもの"をキーワードとして、あんたのではないでしrecurse。

しかし、その時点で利用基準等の試験があることが望ましいと言えます。

どこのコードについて教えてください。それは自家栽培システム、または公開。の場合は自家栽培の開発を担うものです。

編集:大丈夫、私たちが知っているのでWSDL2Java、その答えは() ソースコード:

    // The __equalsCalc field and synchronized method are necessary
    // in case the object has direct or indirect references to itself.

そして、それから:

    // Have we been here before ? return true if yes otherwise false
    pw.println("        if (__equalsCalc != null) {");
    pw.println("            return (__equalsCalc == obj);");
    pw.println("        }");

なの説明の、クラウドコンピューティングの少なくともそのすべて満足のいくものでした軌道を考える再帰.

他のヒント

__equalsCalに等しいへの最後の呼び出しのためのキャッシュとして動作します。同じインスタンスで2つのコールがequalsメソッドをするのであれば、方法がより速くなるでしょう。同じパラメータで呼び出されます。

EDITます:

場合は申し訳ありませんが、これは本当だろう
__equalsCalc = null;

がありますが、あなたのコードを再チェックしません、おそらく私の答えは有効ではありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top