簡體   English   中英

java在不知道實現類的情況下調用接口方法

[英]java Call an interface method without knowing the implementing class

我目前正在用Java編寫的庫有問題。 我在我的庫中創建了一個接口,我需要該lib的用戶來實現。 從我的庫中,我正在調用實現(為什么不相關)。

最初,我使用的是CDI,只是將接口這樣注入到我的lib中的控制類中

@Inject
private Interface interface;

而且我依靠容器來找到由​​所述lib用戶執行的實現。 但是我正在考慮切換到SE,因為使用Java EE的局限性可能會阻礙某些開發人員。

如您所見,我面臨的問題是我無法在不了解實現類的情況下實例化接口,並且無法在實現類中調用方法...

關於如何解決此問題的任何想法? (我有一個自己的想法,但是我想要更好的東西,我不在此發布,因此您的意見不受@:的影響)

提前致謝。

編輯:示例:這是我的控制器類

public class Controller{
     private void InterfaceToImplement interfaceToImplement;

     public void something(){
        String s = interfaceToImplement.someFunction();
     }
}

這是我的界面

public interface {
     abstract String someFunction();
}

我的lib用戶負責實現我的界面和實現someFunction方法。 我從控制器類中調用此函數。 如果對象未初始化,則無法調用接口函數。 使用CDI,容器可以找到實現並將其注入到我的控制器類中的接口對象中,從而對其進行初始化,並且我可以調用用戶的實現方法。 使用SE我無法做到這一點……而且由於我不知道實現我的界面的方式,因此我對此頗為困惑。

希望現在更加清楚:)。

JDBC呢? 它有類似的問題。 您可以在運行時在那里提供實現。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM