2017-05-11 1 views
0

問題は基本的にはこれから成り立ちます。オブジェクトArrayListsの配列を作成しました。なぜなら、後でそれが保存されることを正確にはわからないからです。コンストラクタメソッドのデフォルトの作成では
private List<Object> collectionと初期化されますが、後で入力によっては文字列に変更されるので、その位置のALはcollection[i] = new ArrayList<String>()のようになりますが、コンパイラにはそれもArrayList<String> cannot be converted into ArrayList<Object>と表示されます私はかなり確信しているString、Integerなどクラスから継承オブジェクト
誰かが私は間違っていると私に教えてくれる?ArrayListの型を変更する

List<Object> collection; collection = new ArrayList<String>();

あなたは秘密の文字列にすることはできませんincompatible types: ArrayList<String> cannot be converted to List<Object>

を取得します:

+0

「コレクション[i]」とは何ですか?コレクションにちょうど '追加 'する –

+0

コレクション[]はArrayListsで埋められるが、タイプの変更を拒否する配列 –

+0

' List 'を' List 'に変更しないのはなぜですか?または 'ArrayList 'を 'ArrayList 'に変更しますか?それらは同じ型である必要があります。そうでなければ、 'List <?オブジェクト>を拡張します。 – 4castle

答えて

0

1)collection[i]は、あなたがこのようにそれを書きたい場合)アレイ

2でありますオブジェクト。あなたがそれを望むなら、それをストリングのリストとして作成する必要があります。必要なタイプがわからない場合は、知っているときに作成してください。それを選択したユーザーの場合は、次のように切り替えます。

switch (entry) { 
     case 1: { 
      List<String> collection = new ArrayList<>(); 
      break; 
     } 
     case 2: { 
      List<Integer> collection = new ArrayList<>(); 
      break; 
     } 
     case 3: { 
      List<Character> collection = new ArrayList<>(); 
     } 

    } 
関連する問題