有没有办法告诉Java认为传递给反射方法的Object实现了方法的输入属性的接口?

public class Debuger /*implements IDebuger*/{
...
}


我需要在反射方法someDocument.attachDebuger(IDebuger)中使用此调试器。

我知道IDebuger接口的结构,但是我不能简单地写implements IDebuger,因为它不在我的项目中。
我希望能够打电话给类似的人

Debuger dbg = new Debuger();
Class theClassINeedToImplement = ...;
Object document = ...;
Class docClass = document.GetClass();
/*
HERE call something like
Object Idbg = theClassINeedToImplement.ForceImplementInterface(dbg);
*/
Method m = docClass.getMethod("attachDebuger", theClassINeedToImplement);
m.invoke(document, Idbg);

最佳答案

我认为您需要将IDebuger导入到您的项目中,然后使用Debuger实现它。否则,该方法将不知道是否为它提供了IDebuger,这将导致编译错误。

即使将其放在外部jar中,也可以将其导入并使用该接口。在Eclipse中,右键单击项目,然后选择构建路径,然后添加外部归档。我希望能奏效。

关于java - Java类实现反射接口(interface),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22795356/

10-09 15:45