It seems that you can add elements to a java.util.List that is backed by an array. For example, you could try this:
import java.util.Arrays;
import java.util.List;
public class ListSample {
public static void main(String[] args) {
String[] a = {“foo”, “bar”};
List l = Arrays.asList(a);
l.add(“baz”);
System.out.println(l.get(0));
System.out.println(l.get(1));
}
}
This compiles just fine (OpenJDK 1.7 on openSUSE). However, if you run the sample, an exception will be thrown.
neifer@linux-asb4:~/tmp> javac ListSample.java
neifer@linux-asb4:~/tmp> java ListSample
Exception in thread “main” java.lang.UnsupportedOperationException
at java.util.AbstractList.add(AbstractList.java:148)
at java.util.AbstractList.add(AbstractList.java:108)
at ListSample.main(ListSample.java:8)
neifer@linux-asb4:~/tmp>
Read the API documentation for List.add() and you will find out that it is an optional operation not all implementations provide and that it might throw an UnsupportedOperationException.