为什么以下列表无法在Java中转换为字符串数组

rat*_*zip 0 java arrays string list

我在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();
}
Run Code Online (Sandbox Code Playgroud)

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

java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
Run Code Online (Sandbox Code Playgroud)

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

lan*_*ava 5

尝试:

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

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

    return list.toArray(new String[list.size()]);
}
Run Code Online (Sandbox Code Playgroud)

你可以在这里阅读toArray的javadoc