【问题标题】:Java unchecked conversion of arraylist数组列表的Java未经检查的转换
【发布时间】:2016-10-11 14:10:16
【问题描述】:

谁能告诉我如何以正确的方式创建一个数组数组列表?!

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

我想要一个存储 3 个数组列表的数组(或任何其他解决方案)。如何将对象添加到 arrylists 也很高兴知道。

父数组

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

可以忽略或抑制警告。

【问题讨论】:

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


    【解决方案1】:

    不能创建使用泛型类型的类数组 - 请参阅 here

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

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

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

    然后

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

    最后做一些类似的事情

    parents.add(someChild);
    

    【讨论】:

      【解决方案2】:

      你可以通过演员来做到这一点

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

      不过,我同意 GhostCat 的观点,您应该尝试使用数组或列表,但不要混合使用。 List&lt;List&lt;myObjectype&gt;&gt; 会更好。

      【讨论】:

      • ArrayList[] myParkingLotArray = new ArrayList[3]; 这行得通?!
      • @2vkIYKaT4mNOMe0uRjtsoT5AF 您可以使用@SuppressWarning("checked")抑制警告
      • @2vkIYKaT4mNOMe0uRjtsoT5AF 是的,尽管您不再拥有泛型类型。
      【解决方案3】:

      您不能创建参数化类型的数组。

      你可以做以下事情:

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

      但您不能确定所有列表都是相同类型的列表。

      否则,您可以通过这种方式简单地使用 List of Lists:

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

      【讨论】:

        猜你喜欢
        • 2011-05-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-12
        相关资源
        最近更新 更多