2009-04-27 19 views
0

我正在嘗試使用Interactive Brokers Java API來查看是否可以執行一些算法交易(最初在紙上)。我想調用名爲ReqMktDepth()的方法,該方法名爲EClientSocket如何實例化一個具有需要接口對象的構造函數的類

構造函數EClientSocket需要傳遞AnyWrapper類型的對象,而AnyWrapper是一個不是具體類的接口。從理論上講,我怎樣才能將AnyWrapper類傳遞給EClientSocket的構造函數。

回答

6

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

這裏有一個簡單的教程:

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

+0

我正在使用一些其他公司的API,並不真正瞭解這些方法做什麼,我的實現只能是空的? – Ankur 2009-04-27 13:04:17

+0

這取決於具體。可能有一個具體的類在第三方API中實現了AnyWrapper。實質上,除非AnyWrapper爲空,否則它不能爲空。也就是說,您必須定義您希望實現的接口定義的每個方法。 – BobbyShaftoe 2009-04-27 13:21:06

2

你或許應該使用一些類,你使用的API,它實現了AnyWrapper接口英寸您可以查看該API的JavaDoc,或者使用IDE的功能(類似顯示類型層次結構)來找出哪些類實現AnyWrapper,並傳遞其中一個類。

2

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

但是在我看來,你正在做的事情不可能成功。你正試圖調用一個方法,它的論點完全不爲你所知。您需要閱讀有關該方法的文檔,並瞭解AnyWrapper的用途以及如何使用它。也許只需要提供一些東西,但也許AnyWrapper有一些EClientSocket需要的責任。

這種通過反覆試驗進行編程會導致一些嚴重的問題。首先,除非採取其他保護措施,否則某些方法不安全。某些方法具有主要的性能或安全影響。在這種情況下,我認爲在確定如何去做之前,你真的需要找出你想要做的是什麼。

相關問題