gpt4 book ai didi

java - quickfix.Message.getField 方法

转载 作者:行者123 更新时间:2023-12-01 14:19:15 25 4
gpt4 key购买 nike

我正在迭代快速修复消息。对于给定的字段,如何在不知道类型的情况下获取该字段的值?
quickfix.Message 有像 'Double getDouble(int field), String getString(int field)' 等方法,像 DoubleField getField(DoubleField), StringField getField(StringField )
我期待像“Object get(int field)”这样的方法,它返回 Object
如何在不知道字段类型的情况下检索值?

最佳答案

简答: getString(int field) 实际上是您正在寻找的通用方法。您可以在存在的任何字段上调用它。因为当您考虑它时,FIX 消息只是一堆序列化为字符串并连接起来的字段,对吧?

更长的答案:FIX 消息,在内部,只是将字段存储为字符串。当您将字段存储到消息时,它不会保留您的 Field 对象引用;它只是再次将其存储为字符串。同样,当收到一条消息时,它不会分配一堆新的 Field 对象……那是浪费时间和内存。字段对象在查询时按需创建,非字符串字段在查询时转换。

当您调用 getInt() 时,实际发生的是该方法提取字段的字符串值并将其转换为 int,然后返回它。同样,对于 getField(IntField),它提取字符串,将其转换为 int,然后构造一个新的 IntField 并返回它。

所有字段都是以字符串形式从交易对手方发送给您的。因此,getString(int field) 是完全通用的,可以为您提供有关该字段的所有信息。

关于java - quickfix.Message.getField 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17934284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com