2014-04-01 106 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