0

xml の値に基づいて、コンボ ボックスに値をロードする必要があります。

コンボボックスをロードするとき、メソッド

public static List<String> getVariableNames(Element thisElement, String type) {

    if (thisElement == null) {
        return new ArrayList<String>();
    }
    List<String> variableNames = new ArrayList<String>();
    List<Element> variableElements = thisElement.elements();
    for (Element nextElement : variableElements) {
        if (thisElement.equals(nextElement)) {
            break;
        } else if (isVariable(nextElement)) {
            String iteratedType = nextElement.attributeValue("TYPE");
            if (type.equals(iteratedType)) {
                variableNames.add(nextElement.attributeValue("VARIABLENAME"));
            }
        }
    }
    return variableNames;
}

と呼ばれます。

しかし、これは機能していません。

この実装に問題はありますか?

4

1 に答える 1

0

コメントによると、thisElement.equals(nextElement)は常にfalseを返します。

考えられる理由:

thisElement異なるオブジェクトへの参照でnextElementある可能性があります(ただし、コンテンツは同じです)。.equals()のデフォルトの実装は、この場合は異なる可能性のあるオブジェクトのアドレスを比較します。

メソッドが実際にElementクラスによって実装されていることを確認しequals()、必要なフィールドを比較して、等しい/同じオブジェクトに対してtrueを返すようにしてください。

于 2012-12-24T13:29:01.527 に答える