0

現在、次の方法でメソッド呼び出しを行っています。

InstrumentsInfo instrumentsInfo = new InstrumentsInfo();
String shortInstruName = "EURUSD"

TrackInstruments trackInstruments = new TrackInstruments(instrumentsInfo.getInstrumentID(shortInstruName), instrumentsInfo.getInstrumentTickSize(shortInstruName), instrumentsInfo.getInstrumentName(shortInstruName));

VBAではこのようなことをします

With instrumentsInfo
 TrackInstruments(.getInstrumentID(shortInstruName), .getInstrumentTickSize(shortInstruName), .getInstrumentName(shortInstruName));

だから私の質問は、Javaのメソッド呼び出しで「instrumentsInfo」を繰り返さないようにする方法はありますか?

4

3 に答える 3

3

一言で言えば、あなたは変更を検討したいかもしれませんが

TrackInstruments trackInstruments = new TrackInstruments(instrumentsInfo.getInstrumentID(shortInstruName), instrumentsInfo.getInstrumentTickSize(shortInstruName), instrumentsInfo.getInstrumentName(shortInstruName));

TrackInstruments trackInstruments = new TrackInstruments(instrumentsInfo);

次に、コンストラクターに必要なパラメーターを取得させます。

または、多くのパラメーターが必要な場合は、ビルダーパターンを使用することもできます。

または、後者が非常に大きく依存しているように見えるのに、なぜInstrumentsInfo 外部で構築しているのかを自問してみてください。TrackInstruments(オブジェクトを完全に理解していなくても)

于 2012-10-05T20:48:24.253 に答える
1

はい、オブジェクトタイプInstrumentsInfoを受け入れるコンストラクタをTrackInstrumentsで作成できます。

TrackInstruments trackInstruments = new TrackInstruments(instrumentsInfo);
于 2012-10-05T20:49:12.363 に答える
0

いいえ、WithJava自体には構文はありません。ただし、「instrumentsInfo」の繰り返しを避けるために、次のタイプのコンストラクターを作成することもできます。

TrackInstruments trackInstruments = new TrackInstruments(instrumentsInfo);

ただし、この設計では、オブジェクト間の緩い結合を促進しないものTrackInstrumentsについて知ることができるため、次を使用できます。InstrumentsInfo

Integer instrumentID = instrumentsInfo.getInstrumentID(shortInstruName);
Integer instrumentTickSize = instrumentsInfo.getInstrumentTickSize(shortInstruName);
String instrumentName = instrumentsInfo.getInstrumentName(shortInstruName);

TrackInstruments trackInstruments = new TrackInstruments(instrumentID, instrumentTickSize, instrumentName);
于 2012-10-05T20:47:59.420 に答える