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