어떻게 수정하는 당연합니다.랭.MissingMethodException:없음의 서명법:

내가 노력하고 있 이 방법을 사용하지 않고 폐쇄

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:\geretd\resumebak.txt, C:\geretd\resume.txt, ...]
Possible solutions: copyAndReplaceText(java.lang.Object, 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)

무엇이 잘못된 것입니까?

질문에 대한 의견 (2)
해결책

기 때문에 당신이 통과하는 세에 인수를 네 개의 인수 방법입니다. 또한,당신은 당신을 사용하지 않을 통과 마감.

하려는 경우 지정 작업에서 최고의근원내용,다음 사용하밈. 그것은 다음과 같이 될 것이다:

def copyAndReplaceText(source, dest, closure){
    dest.write(closure( source.text ))
}

// And you can keep your usage as:
copyAndReplaceText(source, dest){
    it.replaceAll('Visa', 'Passport!!!!')
}

는 경우에 당신은 항상 스왑 문자열을 모두 통과,당신의 방법을 서명이 이미 상태:

def copyAndReplaceText(source, dest, targetText, replaceText){
    dest.write(source.text.replaceAll(targetText, replaceText))
}

copyAndReplaceText(source, dest, 'Visa', 'Passport!!!!')
해설 (8)

하는 데 도움 다 버그-사냥꾼입니다. 나는 이러기 때문에 기능 안't 존재합니다.

가 맞춤법 오류가 있습니다.

해설 (0)

이 수 있습니다 또한될 수 있기 때문에 주어진 이름과 함께 모든 문자는 소문자가 그루비(알 버전 2.5.0)는 지원하지 않습니다.

클래스 이름을 사용자가 허용되지만 사용자가 아닙니다.

해설 (0)

할 수도 있습니다 이 오류가 발생한 경우 객체를'다시 전달하는 방법은 순서가 있습니다. 다른 말로 말의 방법,순서대로,문자열 정수와 날짜입니다. 전달하는 경우,다음 문자열,다음의 정수를 얻을 것 같은 오류 메시지가 표시됩니다.

해설 (0)