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() 的默认实现比较在这种情况下可能不同的对象的地址。

请确保该equals()方法实际上是由 Element 类实现的,并比较所需的字段,以便它为相等/相同的对象返回 true。

于 2012-12-24T13:29:01.527 回答