簡體   English   中英

如何實例化具有需要接口對象的構造函數的類

[英]How to instantiate a class that has a constructor requiring an interface object

我正在嘗試使用Interactive Brokers Java API來查看是否可以進行一些算法交易(最初是在紙上進行)。 我想調用一個名為ReqMktDepth()的方法,該方法位於名為EClientSocket的類中。

EClientSocket構造函數要求傳遞類型為AnyWrapper的對象,並且AnyWrapper是一個接口,而不是具體的類。 從理論上講,我該如何將AnyWrapper類傳遞給EClientSocket構造函數。

您需要創建一個實現AnyWrapper的類(使用“ implements”關鍵字),然后必須為該接口定義的任何方法提供定義。

這是一個簡單的教程:

http://www.uweb.ucsb.edu/~cdecuir/Polymorphism.html

您可以按照Bobby的建議創建自己的類來實現AnyWrapper接口。 或者使用已經從AnyWrapper接口擴展的任何其他類(存在於庫/ jar /命名空間中),例如EWrapper,該類已經具有AnyWrapper的實現。

參見-> http://www.interactivebrokers.com/php/apiUsersGuide/apiguide/java/eclientsocket.htm

您可能應該在所使用的API中使用一些類來實現AnyWrapper接口。 您可以查看該API的JavaDoc或使用您的IDE的功能(例如顯示類型層次結構 )來找出哪些類實現AnyWrapper ,並傳遞其中的一個。

其他幾個答案指出,您可以通過自己實現AnyWrapper的實例,也可以通過找到現有類並傳入該類的實例來創建該實例。

但是在我看來,您正在做的事情不太可能成功。 您正在嘗試調用參數完全未知的方法。 您需要閱讀有關該方法的文檔,並了解AnyWrapper的用途以及如何使用它。 也許只需要提供一些東西,但是AnyWrapper可能會承擔EClientSocket需要的一些責任。

這種反復試驗的編程可能會導致一些嚴重的問題。 一方面,除非采取其他保護措施,否則某些方法是不安全的。 某些方法對性能或安全性有重大影響。 在這種情況下,我認為您真的需要先弄清楚自己要做什么,然后再弄清楚該怎么做。

暫無
暫無

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

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