I have the following code in Java, when I run it, it give some error:
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();
}
but when I run it, it says line: return (String[]) list.toArray();
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
what is the problem of this? and how to fix it?
String[].. why not returnCollections.unmodifiableList(list);addAll