我正在尝试使用Interactive Brokers Java API来查看我是否可以进行一些算法交易(最初在纸面上)。我想调用名为ReqMktDepth()
的名为EClientSocket
的方法。
EClientSocket
构造函数需要传递类型为AnyWrapper
的对象,AnyWrapper
是一个接口而不是具体类。理论上,我如何将AnyWrapper
类传递给EClientSocket
构造函数。
答案 0 :(得分:6)
您需要创建一个实现AnyWrapper的类(使用“implements”关键字),然后您必须为该接口定义的任何方法提供定义。
这是一个简单的教程:
答案 1 :(得分:4)
您可以创建自己的类来实现AnyWrapper接口,如Bobby建议的那样。或者使用已经从AnyWrapper接口扩展的任何其他类(存在于库/ jar / namespace中),如EWrapper类,它已经具有AnyWrapper的实现。
参见 - > http://www.interactivebrokers.com/php/apiUsersGuide/apiguide/java/eclientsocket.htm
答案 2 :(得分:2)
您应该在您使用的API中使用一些实现AnyWrapper
接口的类。您可以查看该API的JavaDoc或使用IDE的功能(例如 show type hierarchy )来找出实现AnyWrapper
的类,并传递其中一个。
答案 3 :(得分:2)
其他几个答案指出,您可以通过自己实现或通过查找现有类并传入该类的实例来创建AnyWrapper的实例。
然而,在我看来,你所做的不太可能成功。您正在尝试调用一个方法,其参数完全不为您所知。您需要阅读有关该方法的文档,并找出AnyWrapper的用途以及如何使用它。也许只需提供一些东西,但也许AnyWrapper有一些EClientSocket需要的责任。
这种通过反复试验的编程可能会导致一些严重的问题。首先,除非采取其他保护措施,否则某些方法无法安全通行。某些方法具有重要的性能或安全隐患。在这种情况下,我认为在你弄清楚如何做之前,你真的需要找出你想要做的事情。