実行時に JComboBox でタイプが設定されているオブジェクトをインスタンス化することは可能ですか?
抽象クラスがあるとしましょうFruits
。クラスApple
とBanana
拡張がありFruits
ます。実行時にインスタンス化されるオブジェクトへの参照があります。Fruits chosenFruit
私はこのようなことをしたい:
Fruits chosenFruit;
JComboBox<Fruits> combo = new JComboBox<Fruits>();
Apple appleCombo = new Apple();
Banana bananaCombo = new Banana();
combo.add(appleCombo );
combo.add(bananaCombo);
// When user chose a fruit in JComboBox and clicked OK:
chosenFruit = new combo.getSelectedItem().getClass(); // or .getType() ???
ここでの問題は、JComboBox に追加するためだけに 2 つのオブジェクト (appleCombo と bananaCombo) をインスタンス化したことです。しかし、新しいオブジェクトの型だけを JComboBox に表示し、ユーザーが設定できるようにしたいのです。これが合理的であることを願っています。
前もって感謝します!
編集: だから、次のようなことをする方法はありますか:
JComboBox<Class> combo = new JComboBox<Class>();
combo.add(Apple);
combo.add(Banana);
Fruits chosenFruit = new combo.getSelectedItem();