这个ArrayList不是那个ArrayList

早上同事发现了一个很有趣的问题,后来详细跟踪了一下,发现了原因。

有这样的一段Java Code,

看上去很好,但会有个异常等着你,是UnsupportedOperationException.

为什么呢?Arrays.asList会返回一个ArrayList, 但注意,这个ArrayList不是那个ArrayList。它是Arrays的一个Nested Class,所以应该说它是Arrays.ArrayList. 而且它没有实现add, remove等接口,所以那个异常就出来了。

这个例子告诉我们Arrays.asList生成的List是不能修改的,是一个AbstractList。

发表评论

电子邮件地址不会被公开。 必填项已用*标注