グルーヴィー?私はちょうどそれを拾っています。これを試してください(groovyconsole内で):
File.metaClass.invokeMethod = { String name, args ->
System.out.print ("Call to $name intercepted...");
File.metaClass.getMetaMethod(name, args).invoke(delegate, args);
}
new File("c:/temp").eachFile{
if (it.isFile()) println it.canonicalPath
}
最初のコードは AOP です。File オブジェクトの任意のメソッドへの呼び出しはすべて傍受されます。追加のツールは必要ありません。これは、既存の Java クラスに対して動的に実行されます。
2 番目のブロックでは、'f' クロージャー パラメーターを削除します。パラメータは 1 つにすぎないため、クロージャ コンテキストで使用できる組み込みの「it」変数がデフォルトになります。
これがあなたが得るものです:
「isFile への呼び出しが傍受されました...C:\temp\img.jpg」
等