[解決済み] groovy.lang.MissingMethodException を修正する方法。メソッドのシグネチャがありません。
2022-03-11 17:50:08
質問
このメソッドをクロージャなしで使用しようとしています。
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)
何が間違っているのでしょうか?
どうすればいいですか?
4つの引数のメソッドに3つの引数を渡しているからです。また、渡されたクロージャを使用していません。
の上で行う操作を指定する場合、その操作は
source
の内容であれば、クロージャを使用します。こんな感じでしょうか。
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!!!!')
関連
-
[解決済み] Groovyで文字列をint型に変換する
-
[解決済み] groovyで乱数を使うにはどうしたらいいですか?
-
[解決済み] groovy.lang.MissingMethodException を修正する方法。メソッドのシグネチャがありません。
-
[解決済み] groovyのfindResultsとcollectの違いは何ですか?
-
グルーヴィーな使い方
-
Groovyテンプレートエンジン
-
Groovyの使い方を完全解説
-
Groovyの紹介と使い方
-
[解決済み] groovy.lang.MissingMethodException を修正する方法。メソッドのシグネチャがありません。
-
[解決済み] Jenkinsfile (groovy)から変数に使用して実行されたシェルコマンドの出力を取得するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 名前付きパラメータ
-
[解決済み] groovyで乱数を使うにはどうしたらいいですか?
-
[解決済み] グルービーです。Grabインクルージョンとクラスパスインクルージョンの違いは?
-
[解決済み] groovy.lang.MissingMethodException を修正する方法。メソッドのシグネチャがありません。
-
[解決済み] groovyのfindResultsとcollectの違いは何ですか?
-
グルーヴィーな使い方
-
Groovyの使い方を完全解説
-
Groovyの紹介と使い方
-
[解決済み] groovy.lang.MissingMethodException を修正する方法。メソッドのシグネチャがありません。
-
[解決済み】gradleプラグインを適用する際の違いについて