小编Big*_*c66的帖子

Java反射,其中方法参数是接口

首先让我说我正在维护别人设计糟糕的代码,所以我可以改变它的程度有限。

现在发生的事情是他们创建了一系列由反射调用的方法。其中一种方法将 Map 作为其参数之一。在运行时,这个 Map 是用 Hashtable 实现的。

这是问题 - 我得到一个 NoSuchMethodException 因为它正在寻找一个以 Hashtable 作为参数的方法,即使 Hashtable 实现了 Map 接口。让我感到困惑的是,如果我不使用反射(在这种情况下是一个主要的设计更改)并传递了一个 Hashtable,它将使用 Map 参数调用该方法 - 那么为什么当我使用反射时它的工作方式不一样?

鉴于我几乎必须坚持使用反射,当我将实现该接口的类传递给它时,有什么方法可以让带有 Map 参数的方法被调用?

如果你愿意,我可以模拟一些代码来演示......

java reflection interface

5
推荐指数
1
解决办法
4524
查看次数

标签 统计

interface ×1

java ×1

reflection ×1