Java未经检查的arraylist转换

时间:2016-10-11 14:10:16

标签: java arraylist type-conversion unchecked unchecked-exception

有人能告诉我如何以正确的方式创建阵列arraylist吗?!

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

我想要一个存储3个arraylists的arry(或任何其他解决方案)。如何向arrylists添加对象也很高兴。

ParentArray

  1. ChildArrayList1
  2. ChildArrayList2
  3. ChildArrayList3
  4. 我很高兴获得任何帮助

    SOLUTION:

    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>();
      }
    }
    

    可以忽略或禁止警告。

3 个答案:

答案 0 :(得分:6)

无法创建使用泛型类型的类数组 - 请参阅here

并且无法解决该错误消息。编译器告诉你:这不可能!

相反 - 只需坚持一个概念。无论如何,没有必要混合数组和列表。只是去

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

然后

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

最后做一些像

这样的事情
parents.add(someChild);

答案 1 :(得分:0)

您可以使用强制转换

执行此操作
ArrayList<myObjectType>[] myParkingLotArray = (ArrayList<myObjectType>[]) new ArrayList[3];

但是,我同意GhostCat你应该尝试使用数组或列表但不要混用它们。 List<List<myObjectype>>会更好。

答案 2 :(得分:0)

您无法创建参数化类型的数组。

你可以做的是如下:

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

无法确定所有列表都是相同类型的列表。

否则你可以用这种方式简单地使用列表列表:

List<List<Vehicle>> listOfLists = new ArrayList<>();
List<Vehicle> list = new ArrayList<>();
listOfLists.add(list);