2014-04-01 101 views
0

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

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

如果您想直接使用IDebugger接口,则必须导入并实施它。 否则,您必须使用反射来显式访问您(程序员)所知道的方法,因为您(作为程序员)知道该对象实现了IDebugger。 – keshlam

回答

1

我认为你需要导入IDebuger到您的项目,然后用Debuger实现它的东西。否则,该方法不会知道它正在被赋予一个IDebuger,并且会导致编译错误。

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

+0

这会很好,但我没有在我的项目中的IDebuger,它是在外部的罐子里,我只能通过URLClassLoader加载 – MartinZ