-1

構造体を埋める再帰メソッドに問題がありLinkedHashMap<String,LinkedHashMap<String, Integer>>ます。最後のリターンでの関数の呼び出しが正しい場所にあるかどうかはわかりません-私は今それを3つの異なる場所に置いてみました:

public static LinkedHashMap<String, LinkedHashMap<String, Integer>> GetXMLRegularExpression(
        Node node, LinkedHashMap<String, LinkedHashMap<String, Integer>> a) {
    List<Element> children = getChildren(node);
    List<String> childrenString = ConversionString(children);
    List<String> Clear = RemoveDuplicate(children);
    LinkedHashMap<String, Integer> lhm = new LinkedHashMap<String, Integer>();

    // System.out.println(childrenString);
    if (!isLeaf(node)) {
        for (int i = 0; i < Clear.size(); i++) {
            int count = NumberOfAppear(childrenString, Clear.get(i));
            lhm.put(Clear.get(i), count);
        }
        a.put(node.getNodeName(), lhm);
        return a;

    } else {
        lhm.put(node.getNodeName(), 0);
        a.put(node.getNodeName(), lhm);
        return a;
    }

    for (int j = 0; j < children.size(); j++) {
        return GetXMLRegularExpression(children.get(j), a);
    }
}
4

1 に答える 1

2

コードに問題があるようです。「return」ステートメントをループに埋め込んだのですが、これは奇妙なことです。この関数から複数の値を返そうとしていますか?ループの最初の反復で、「return」ステートメントが実行され、この関数の実行が終了します。

于 2012-05-03T01:04:23.527 に答える