Groovy 方法存在时缺少方法异常
我是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
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)
以避免索引自动边界异常
异常