Java类实现反射接口

时间:2014-04-01 19:39:10

标签: java reflection

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

1 个答案:

答案 0 :(得分:1)

我认为您需要将IDebuger导入您的项目,然后使用Debuger实现它。否则,该方法不会知道它被赋予IDebuger,这将导致编译错误。

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