私の無知を許してください、しかし、私は他の場所で答えを見つけることができませんでした.
次のコードがあります。
int value = 5;
Strategy s = new Strategy(convert(value));
mainClass.setStuff(s, value);
ストラテジーは、「値」の変換に基づく数値で初期化されます。mainClass は、変換されていない「値」を使用します。
私がやりたいことは、どの戦略を使用するか、どの未変換の値を使用するかという情報のみを mainClass に与えることによってこれを単純化することです。その後、mainClass は戦略のインスタンス化と初期化を行い、値を処理する必要があります。
C++ では、テンプレートを使用してこれを行うことができます。
int value = 5;
mainClass.setStuff<Strategy>(value);
どうにかしてJavaでこれを機能させることはできますか? C ++とは異なり、Javaは引数の型を推測できないため、ジェネリックでは機能しないようです。そのため、ストラテジーを初期化できません。