0

次のようなコンボボックスがあります。

static final String[] intString = {"Dist.","4","5","6","7","8"};
static JComboBox numList = numList = new JComboBox(intString);

そして、どの項目が選択されているかをつかみ、それを int 型に変換する必要があります。私はこれを使用しました:

Integer.parseInt(numList.getSelectedItem().toString()

しかし、正直なところ、なぜそれが機能するのか理解できません。「toString()」を含めない場合、関連するエラーは次のとおりです。

parseInt(string) in Integer cannot be applied to Object

では、文字列を渡したところ、リスト内の項目はオブジェクトになりましたか? クラスを作成してインスタンス化すると、クラスに関連付けられたすべてのメソッドとインスタンス変数を含むオブジェクトへの参照が効果的に作成されることを理解しています。しかし、私はこの概念を超えて、いつ、なぜ、オブジェクトの作成を理解していません。

リスト内の項目がオブジェクトになった理由と、オブジェクトを文字列にキャストする方法を教えてください。スーパークラスが参照されているときにサブクラスを渡すことができることを理解しています:

ArrayList<Object> dogList = new ArrayList<Object>();
Dog yorkie = new Dog(); 
dogList.add(yorkie); //since Dog extends object
Dog doberman = (Dog) dogList[0]; //re-cast to original type

コンセプトが似ているのではないでしょうか。

ありがとうございました。

4

3 に答える 3