我在Java中有以下代码,运行时会出现一些错误:

String[] stringArray1 = {"1","2","3"};
String[] stringArray2 = {"1","3","5"};
String[] stringArray3 = {"1","4","6"};

public String[] getString(int age) {

        List<String> list = new ArrayList<String>();

        switch (age) {
            case 1:

                Collections.addAll(list, stringArray1);
                return composeStrings(list);

            case 2:

                Collections.addAll(list, stringArray2);
                return composeStrings(list);

            case 3:
                Collections.addAll(list, stringArray3);
                return composeStrings(list);

            default:
                return new String[]{"Not find", "Please specify the age"};
            }
    }

public String[] composeStrings(List<String> list) {

        list.add("added a new string");

        return (String[]) list.toArray();
}


但是当我运行它时,它说一行:return (String[]) list.toArray();

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;


这是什么问题?以及如何解决?

最佳答案

尝试:

public String[] composeStrings(List<String> list) {

    list.add("added a new string");

    return list.toArray(new String[list.size()]);
}


您可以阅读toArray here的javadoc

07-25 22:55
查看更多