2

誰も私が正しい方法で配列arraylistを作成する方法を教えてもらえますか?arraylistのJava未確認の変換

.\File.java:5: warning: [unchecked] unchecked conversion 
     ArrayList<myObjectType> myParkingLotArray[] = new ArrayList[3]; 
               ^
    required: ArrayList<Vehicle>[] 
    found: ArrayList[] 
1 warning 

I 3つのArrayListを格納ARRY(または任意の他の溶液)たいです。 arrylistにオブジェクトを追加する方法も知っているといいでしょう。

ParentArray

  1. ChildArrayList1
  2. ChildArrayList2
  3. ChildArrayList3

イム任意のヘルプ

ソリューションの幸せ:

public class myClass { 
    ArrayList<myObjectType>[] myArryName= new ArrayList[3]; 

    public void addLists() { 
    myArryName[0] = new ArrayList<myObjectType>(); 
    myArryName[1] = new ArrayList<myObjectType>(); 
    myArryName[2] = new ArrayList<myObjectType>(); 
    } 
} 

警告は無視または抑制できます。

答えて

6

genericタイプを使用するクラスの配列を作成できません - hereを参照してください。

このエラーメッセージを回避する方法はありません。コンパイラはあなたにこう伝えます:これは不可能です!

代わりに、の1つで、のコンセプトをそのまま使用してください。アレイとリストを混在させる必要はありません。ただ、

そして最後にあなたがキャスト

ArrayList<myObjectType>[] myParkingLotArray = (ArrayList<myObjectType>[]) new ArrayList[3]; 

でこれを行うことができます

parents.add(someChild); 
0

ような何かを

List<Vehicle> someChild = new ArrayList<>(); 

のために行くが、私は同意しますGhostCatを使用すると、配列やliを使うべきですそれらを混ぜ合わせてはいけません。 List<List<myObjectype>>が良いでしょう。

+0

;'これは働いていました?! – 2vkIYKaT4mNOMe0uRjtsoT5AF

+0

@ 2vkIYKaT4mNOMe0uRjtsoT5AF「@SuppressWarning( "checked") ' –

+0

@ 2vkIYKaT4mNOMe0uRjtsoT5AFの警告を抑制することはできますが、これ以上ジェネリックタイプはありません。 –

0

パラメータ化された型の配列を作成することはできません。あなたがinsteadeを行うことができますどのような

は次のとおりです。

List [] arrayOfLists = new ArrayList[10]; 
arrayOfLists[0] = new ArrayList<Vehicle>(); 

いますは、すべてのリストは、同じタイプのリストになること確認することはできません。

そうしないと、このようにリストの単純リストを使用することができます: `ArrayListの[] myParkingLotArray =新しいArrayListには、[3]

List<List<Vehicle>> listOfLists = new ArrayList<>(); 
List<Vehicle> list = new ArrayList<>(); 
listOfLists.add(list); 
関連する問題