【发布时间】:2011-04-03 06:49:30
【问题描述】:
首先让我说我正在维护别人设计不佳的代码,所以我可以更改它的数量有限。
现在发生的事情是,他们创建了一系列由反射调用的方法。其中一种方法将 Map 作为其参数之一。在运行时,此 Map 使用 Hashtable 实现。
这就是问题所在 - 我得到一个 NoSuchMethodException ,因为它正在寻找一个以 Hashtable 作为参数的方法,即使 Hashtable 实现了 Map 接口。让我感到困惑的是,如果我不使用反射(在这种情况下是一项重大的设计更改)并传递了一个 Hashtable 它将调用带有 Map 参数的方法 - 那么为什么当我使用反射时它的工作方式不同?
鉴于我几乎必须坚持使用反射,有没有办法让带有 Map 参数的方法在我传递一个实现该接口的类时被调用?
如果你愿意,我可以模拟一些代码来演示......
【问题讨论】:
标签: java reflection interface