有人能告诉我如何以正确的方式创建阵列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
我很高兴获得任何帮助
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>();
}
}
可以忽略或禁止警告。
答案 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);