问题基本上就是这个问题,我们已经创建了一个Object ArrayLists数组,因为我们不知道我们将在那里保存什么,直到稍后,但我们知道如何(我们必须这样做),所以构造函数方法的默认创建将其初始化为
private List<Object> collection
但稍后会对某些输入进行更改,将其更改为字符串,因此位置上的AL应该类似collection[i] = new ArrayList<String>()
,但编译器说ArrayList<String> cannot be converted into ArrayList<Object>
甚至认为我很漂亮确保String,Integer等从类Object继承
任何人都可以告诉我,我做错了什么?
答案 0 :(得分:0)
1)collection[i]
是一个数组
2)如果你想这样写:
List<Object> collection;
collection = new ArrayList<String>();
您将获得incompatible types: ArrayList<String> cannot be converted to List<Object>
您无法将字符串转换为对象。如果您想要它,您需要将其创建为字符串列表。如果你不知道你需要什么类型,只需在你知道的时候创建它。如果是选择它的用户,请按以下方式进行切换:
switch (entry) {
case 1: {
List<String> collection = new ArrayList<>();
break;
}
case 2: {
List<Integer> collection = new ArrayList<>();
break;
}
case 3: {
List<Character> collection = new ArrayList<>();
}
}