私はquickfixjで開発しています
QuoteRequestメッセージのヘッダーにSenderSubIDフィールドを設定しようとしています。
私は次のコードを使用します:
QuoteRequest msg = new QuoteRequest();
msg.getHeader().set(new SenderSubID(myid));
これが最善の方法ですか、それともこれを行うためのより良い方法がありますか?ありがとう
私はquickfixjで開発しています
QuoteRequestメッセージのヘッダーにSenderSubIDフィールドを設定しようとしています。
私は次のコードを使用します:
QuoteRequest msg = new QuoteRequest();
msg.getHeader().set(new SenderSubID(myid));
これが最善の方法ですか、それともこれを行うためのより良い方法がありますか?ありがとう
getHeader()
を使用できるかどうかわかりませんset()
。ある場合は、それを使用してください。それ以外の場合は、単に使用しますsetField()
。
Message.set()
ほとんどの場合、新しいフィールドをメッセージに追加する最も安全な方法です。これは、(FIX xx 仕様に基づいて) 特定の MsgType の一部ではないフィールドをコンパイラが追加できないようにするためです。
QuickfixJ については、このオンライン ドキュメントを参照してください。多くの手間を省きます。
getHeader()から返されるHeaderクラスは set 関数をサポートしていません。しかし、あなたのために働くことができる2つのセット機能があります。
setString
より柔軟ですが、FIX 標準でサポートされておらず、後の段階でクライアントから拒否されるフィールドを追加できます。
setField
メッセージを作成する最も安全な方法は、メッセージに存在しないフィールドを追加しようとするとエラーが発生することです。ただし、QuickfixJ がメッセージに存在する/存在しないフィールドをチェックするために使用する xml ファイルをいじっている場合、これは絶対確実な方法ではない可能性があります。