Groovy 方法存在时缺少方法异常

Groovy 方法存在时缺少方法异常,groovy,Groovy,我是Groovy新手,但我正在尝试编写一个简单的递归方法来将层次路径解析为对象图。以下是我尝试过的: class Hierarchy { def root = [:] static void processHierarchy(names, parent) { println names if (names.size() > 0) { def childName = names[0] def c

我是Groovy新手,但我正在尝试编写一个简单的递归方法来将层次路径解析为对象图。以下是我尝试过的:

class Hierarchy {
    def root = [:]

    static void processHierarchy(names, parent) {
        println names
        if (names.size() > 0) {
            def childName = names[0]
            def child = parent[childName]
            if (child == null){
                child = new Expando()
                parent[childName]=  child
            }
            processHierarchy(names[1..-1], child)
        }
    }

    Hierarchy () {
        def names = '/some/thing/to/test'.split('/')
        if (names != null && names.size() > 0){
            processHierarcy(names, this.root)
        }
        println this.root
    }
}

new Hierarchy()
但我得到了以下错误:

Caught: groovy.lang.MissingMethodException: No signature of method: Hierarchy.processHierarcy() is applicable for argument types: ([Ljava.lang.String;, java.util.LinkedHashMap) values: [[, some, thing, to, test], [:]]
Possible solutions: processHierarchy(java.lang.Object, java.lang.Object)
groovy.lang.MissingMethodException: No signature of method: Hierarchy.processHierarcy() is applicable for argument types: ([Ljava.lang.String;, java.util.LinkedHashMap) values: [[, some, thing, to, test], [:]]
Possible solutions: processHierarchy(java.lang.Object, java.lang.Object)
    at Hierarchy.<init>(xxx.groovy:48)
    at xxx.run(xxx.groovy:54)
catch:groovy.lang.MissingMethodException:没有方法的签名:Hierarchy.processHierarcy()适用于参数类型:([Ljava.lang.String;,java.util.LinkedHashMap)值:[,some,thing,to,test]:]
可能的解决方案:processHierarchy(java.lang.Object、java.lang.Object)
groovy.lang.MissingMethodException:没有方法的签名:Hierarchy.processHierarcy()适用于参数类型:([Ljava.lang.String;,java.util.LinkedHashMap)值:[,some,thing,to,test],:]
可能的解决方案:processHierarchy(java.lang.Object、java.lang.Object)
在层次结构上。(xxx.groovy:48)
运行时(xxx.groovy:54)

我在这里遗漏了什么?

processHierarcy(name,this.root)
中遗漏了一个
h


另外,将
processHierarchy()
中的if块修改为
if(names.size()>1)
以避免
索引自动边界异常
异常。

processHierarchy(names,this.root)
中缺少
h

另外,将
processHierarchy()
中的if块修改为
if(names.size()>1)
以避免
索引自动边界异常
异常