我正在嘗試使用Interactive Brokers Java API來查看是否可以執行一些算法交易(最初在紙上)。我想調用名爲ReqMktDepth()
的方法,該方法名爲EClientSocket
。如何實例化一個具有需要接口對象的構造函數的類
構造函數EClientSocket
需要傳遞AnyWrapper
類型的對象,而AnyWrapper
是一個不是具體類的接口。從理論上講,我怎樣才能將AnyWrapper
類傳遞給EClientSocket
的構造函數。
我正在嘗試使用Interactive Brokers Java API來查看是否可以執行一些算法交易(最初在紙上)。我想調用名爲ReqMktDepth()
的方法,該方法名爲EClientSocket
。如何實例化一個具有需要接口對象的構造函數的類
構造函數EClientSocket
需要傳遞AnyWrapper
類型的對象,而AnyWrapper
是一個不是具體類的接口。從理論上講,我怎樣才能將AnyWrapper
類傳遞給EClientSocket
的構造函數。
您需要創建一個實現AnyWrapper的類(使用「implements」關鍵字),然後您必須提供該接口定義的任何方法的定義。
這裏有一個簡單的教程:
您可以創建自己的類巴比表明它實現AnyWrapper接口。或者使用已經從AnyWrapper接口擴展的任何其他類(存在於庫/ jar /命名空間中),例如已經具有AnyWrapper實現的EWrapper類。
看看 - >http://www.interactivebrokers.com/php/apiUsersGuide/apiguide/java/eclientsocket.htm
你或許應該使用一些類,你使用的API,它實現了AnyWrapper
接口英寸您可以查看該API的JavaDoc,或者使用IDE的功能(類似顯示類型層次結構)來找出哪些類實現AnyWrapper
,並傳遞其中一個類。
其他幾個答案指出,您可以通過自己實現它或通過查找現有類並傳入該類的實例來創建AnyWrapper的實例。
但是在我看來,你正在做的事情不可能成功。你正試圖調用一個方法,它的論點完全不爲你所知。您需要閱讀有關該方法的文檔,並瞭解AnyWrapper的用途以及如何使用它。也許只需要提供一些東西,但也許AnyWrapper有一些EClientSocket需要的責任。
這種通過反覆試驗進行編程會導致一些嚴重的問題。首先,除非採取其他保護措施,否則某些方法不安全。某些方法具有主要的性能或安全影響。在這種情況下,我認爲在確定如何去做之前,你真的需要找出你想要做的是什麼。
我正在使用一些其他公司的API,並不真正瞭解這些方法做什麼,我的實現只能是空的? – Ankur 2009-04-27 13:04:17
這取決於具體。可能有一個具體的類在第三方API中實現了AnyWrapper。實質上,除非AnyWrapper爲空,否則它不能爲空。也就是說,您必須定義您希望實現的接口定義的每個方法。 – BobbyShaftoe 2009-04-27 13:21:06