更改ArrayList的类型

时间:2017-05-11 01:17:19

标签: java list object arraylist

问题基本上就是这个问题,我们已经创建了一个Object ArrayLists数组,因为我们不知道我们将在那里保存什么,直到稍后,但我们知道如何(我们必须这样做),所以构造函数方法的默认创建将其初始化为
private List<Object> collection但稍后会对某些输入进行更改,将其更改为字符串,因此位置上的AL应该类似collection[i] = new ArrayList<String>(),但编译器说ArrayList<String> cannot be converted into ArrayList<Object>甚至认为我很漂亮确保String,Integer等从类Object继承 任何人都可以告诉我,我做错了什么?

1 个答案:

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

    }