如何修复groovy.lang.MissingMethodException:没有方法签名:
发布时间:2020-12-14 16:35:48 所属栏目:大数据 来源:网络整理
导读:我试图在没有闭包的情况下使用此方法 def copyAndReplaceText(source,dest,targetText,replaceText){ dest.write(source.text.replaceAll(targetText,replaceText))}def source = new File('C:/geretd/resumebak.txt') //Hello Worlddef dest = new File('C:
我试图在没有闭包的情况下使用此方法
def copyAndReplaceText(source,dest,targetText,replaceText){ dest.write(source.text.replaceAll(targetText,replaceText)) } def source = new File('C:/geretd/resumebak.txt') //Hello World def dest = new File('C:/geretd/resume.txt') //blank copyAndReplaceText(source,dest){ it.replaceAll('Visa','Passport!!!!') } 但是当我运行它时,我收到以下错误: groovy.lang.MissingMethodException: No signature of method: ConsoleScript3.copyAndReplaceText() is applicable for argument types: (java.io.File,java.io.File,ConsoleScript3$_run_closure1) values: [C:geretdresumebak.txt,C:geretdresume.txt,...] Possible solutions: copyAndReplaceText(java.lang.Object,java.lang.Object,java.lang.Object) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55) at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:78) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:49) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:133) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:149) 我究竟做错了什么? 解决方法
因为您将三个参数传递给四个参数方法.此外,您没有使用传递的闭包.
如果要指定在源内容之上进行的操作,请使用闭包.它会是这样的: def copyAndReplaceText(source,closure){ dest.write(closure( source.text )) } // And you can keep your usage as: copyAndReplaceText(source,'Passport!!!!') } 如果您将始终交换字符串,则传递两者,因为您的方法签名已经指出: def copyAndReplaceText(source,replaceText)) } copyAndReplaceText(source,'Visa','Passport!!!!') (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |