条件に応じて、2 つの異なるタイプのいずれかのオブジェクトをインスタンス化する必要があります。どちらの型もコンストラクターに同じ引数を取り、どちらもマスター型のサブクラスです。条件内で正しい型への参照を定義し、その参照を使用してオブジェクトをインスタンス化できますか? 簡単な例:
if (v == "bob") {
Object myType = bobType;
} else {
Object myType = otherType;
}
SuperType instance = new myType(arg1, arg2);
これは機能しません。Javaでこれの正しい構文はありますか? これは、これを行うためのショートカットです。
if (v == "bob") {
SuperType instance = new bobType(arg1, arg2);
} else {
SuperType instance = new otherType(arg1, arg2);
}
私は実際に、すべて同じ型のいくつかのインスタンスを作成していますが、それらはすべて引数の長いリストを取り、型を除いて自分自身を正確に繰り返すことを避けたかったのです。