私は、ファイルの内容が正しくフォーマットされているかどうかの規則のコレクションを含むgroovyユニットテストクラスに取り組んでいます。 (適切なルールエンジンを使用していないため、Groovyのアサーション機能を利用して、ルールエンジンとは似通った方法でバリデーションを行うだけです)私はFireAllRulesというメソッドを作成することができると考えていました。リフレクトを使用してjava/groovyオブジェクトの静的メソッドを呼び出す
public static void FireAllRules(File file)
{
for(def method in Class.getMethods)
{
if(method.name.indexOf("rule" == 0) method.invoke(file);
}
}
ループを拾いたいすべてのメソッドは静的で、デバッグプロセス中に気付きました。私のルールメソッドはClass.getMethods()列挙に含まれていません。理想的には、私は、java.Objectとともに入ってくる数多くの興味深いメソッドをソートするのではなく、私が個人的にクラスに書き込んだメソッドをループするだけです。実行時にこれらの静的メソッドを反復処理するためにリフレクションを使用する方法はありますか?
のようになります。Javaはメタクラスとgrepを持っていますか?これはどの言語ですか? – raddykrish
@raddykrishそれはGroovy –
そして、javaは 'metaClass'と' grep'を持っていません。 –