[英]Java, creating interface dynamically?
我正在尋找在運行時創建接口的解決方案。 我真的不知道這是否有可能。
問題:
我有一個OSGi服務,該服務發布了Map<String,String>
,其中鍵定義了此服務的操作。 我想將此服務直接作為Spring的Hessian
服務發布,但是為此,我需要使用delcare接口。 現在,我想在運行時創建此接口。
例如,可以通過使用字節碼操作庫(例如ASM)生成接口來動態創建接口。 但是將無法使用該接口,因為無法針對該接口編譯任何代碼(除非您還動態生成使用該接口的代碼)。
您正在嘗試做什么?
您不能真正做到這一點(除非您涉及字節碼操作/創建,而且我認為這不是最佳途徑)。
如果您沒有任何東西可以訪問該接口,那么動態創建的接口有什么用?
換句話說:沒有任何東西可以針對動態創建的接口進行編譯(顯然,因為它在編譯時不存在)。 那么誰會使用它呢?
接口和類僅用於幫助編譯器發現可能的錯誤。 如果要在運行時創建此接口,則沒有編譯器,因為它不會找到錯誤,所以為什么需要此接口?
在這種情況下,只需發布一些通用接口的實現,就可以像這樣:interface GenericInterface {Object invokeMethod(String name,Object ... arguments); }這是您唯一需要的接口,您可以在編譯時創建它! 您可能僅需要在運行時創建它的實現,例如,使用java.lang.reflect.Proxy
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.