0

私はDOM4Jを使用して2つのXML要素の分析を行っています。要素は次のとおりです。

<element1 attr="val">text</element1> //org.dom4j.Element = e1

<element1 attr="val">OtherText</element1>  //org.dom4j.Element = e2

これらの要素は両方ともorg.dom4j.Elementインスタンスに格納され、e1およびe2

これらの要素は両方とも同じ属性を持っていると思いますので、次のことを期待します。

e1.attributes().containsAll(e2.attributes())

を返しますtrueが、実際にはを返しますfalse

これらの属性の両方を調べると、次の文字列表現が見つかります。

org.dom4j.tree.DefaultAttribute@552c8fa8 [Attribute: name attr value "val"]

org.dom4j.tree.DefaultAttribute@26d58939 [Attribute: name attr value "val"]

明らかな何かが欠けていますか?containsAllこの振る舞いを検査するために私自身の関数を書く以外に、私が試みるべき他のことを考えられますか?

4

1 に答える 1

4

私はあなたがあなた自身を書かなければならないと信じていますcontainsAll()List.containsAll()を使用してアイテムを比較するデフォルトが表示されていますequals()。DefaultAttributeは、比較を評価するためにオーバーライドしない ため、運が悪いです。equals()true

于 2011-01-10T20:11:31.453 に答える