使用反射在java bean中递归调用方法

时间:2014-06-05 15:24:50

标签: java reflection

我遇到了以下问题: 有这种java bean:

public abstract class BaseModel {
  public void doSomeThing(int x) {
    // Do cool stuff here with x
  }
}

public class ModelA extends BaseModel {
}

public class ModelB extends BaseModel {
   private ModelA modelA;
   private OtherStuff otherStuff;
}

我现在正在搜索一种在我的对象树上调用所有BaseModel.doSomeThing(int x)方法的方法。该模型在我的控制之下,所以如果需要我可以修改它。

编辑:希望我能尝试更清楚一点:我想提供基类BaseModel。然后,用户从此基类扩展其类。我想提供一个带有方法doStuff(BaseModel模型)的类,该方法在BaseModel实例提供的对象树中的BasseModel的每个实例上调用doSomeThing(x)。

示例:

ClassToBeFound classToBeFound = new ClassToBeFound();
ModelB modelB = new ModelB();
classToBeFound.magicMethod(modelB, 10);
// this should lead to a call of modelB.doSomeThing(10) and modelB.modelA.doSomeThing(10)

由于我不知道传递给magicMethod的对象的具体对象图,我需要一种方法来找出图中的BaseModel实例。

此致

丹尼尔

0 个答案:

没有答案