簡體   English   中英

Java未檢查的arraylist轉換

[英]Java unchecked conversion of arraylist

有人可以告訴我如何以正確的方式創建array-arraylist嗎?

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

我想要一個存儲3個arraylist的arry(或任何其他解決方案)。 如何將對象添加到清單中也很高興。

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

該警告可以忽略或取消。

不能創建使用泛型類型的類數組-請參見此處

而且沒有辦法解決該錯誤消息。 編譯器告訴您:這是不可能的!

相反-只需保留一個概念。 無論如何,混合數組和列表是沒有意義的。 只是去

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

接着

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

最終做類似的事情

parents.add(someChild);

你可以用演員表做到這一點

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

但是,我同意GhostCat,您應該嘗試使用數組或列表,但不要混合使用。 List<List<myObjectype>>會更好。

您不能創建參數化類型的數組。

您可以做的是以下幾點:

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

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

否則,您可以通過以下方式簡單地使用列表列表:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM