有没有办法告诉java认为传递给反射方法的Object实现了方法输入属性的接口?
public class Debuger /*implements IDebuger*/{
...
}
这个Debuger我需要在反射方法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);
答案 0 :(得分:1)
我认为您需要将IDebuger导入您的项目,然后使用Debuger实现它。否则,该方法不会知道它被赋予IDebuger,这将导致编译错误。
即使它在外部jar中,您也可以导入它并使用该接口。在Eclipse中,右键单击项目,然后选择构建路径,然后添加外部存档。我希望有效。