有没有办法告诉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/